Esempio n. 1
0
        public static void Initialize()
        {
            objectName = new List<string>();
            objectInfo = new List<string>();
            parts = new List<Part[][]>();

            StreamReader reader = new StreamReader(TitleContainer.OpenStream(levelPath));
            string name = reader.ReadLine();

            while (name != null)
            {
                objectName.Add(name);
                objectInfo.Add(reader.ReadLine());

                int frameCount = int.Parse(reader.ReadLine());
                Part[][] curObjectParts = new Part[frameCount][];
                for (int curFrame = 0; curFrame < frameCount; curFrame++)
                {
                    int numParts = int.Parse(reader.ReadLine());
                    curObjectParts[curFrame] = new Part[numParts];
                    for (int curPart = 0; curPart < numParts; curPart++)
                    {
                        string partType = reader.ReadLine();
                        string[] boundingRectangleInfo = reader.ReadLine().Split(' ');
                        Rectangle boundingRectangle = new Rectangle(int.Parse(boundingRectangleInfo[0]),
                                                                    int.Parse(boundingRectangleInfo[1]),
                                                                    int.Parse(boundingRectangleInfo[2]),
                                                                    int.Parse(boundingRectangleInfo[3]));
                        if (partType == "bouncy")
                        {
                            curObjectParts[curFrame][curPart] = new BouncyPart(boundingRectangle);
                        }
                        else if (partType == "damaging")
                        {
                            curObjectParts[curFrame][curPart] = new DamagingPart(boundingRectangle);
                        }
                        else if (partType == "passable")
                        {
                            curObjectParts[curFrame][curPart] = new PassablePart(boundingRectangle);
                        }
                        else if (partType == "platform")
                        {
                            curObjectParts[curFrame][curPart] = new PlatformPart(boundingRectangle);
                        }
                        else if (partType == "solid")
                        {
                            curObjectParts[curFrame][curPart] = new SolidPart(boundingRectangle);
                        }
                    }
                }
                parts.Add(curObjectParts);
                name = reader.ReadLine();
            }

            reader.Close();
        }
Esempio n. 2
0
 /// <summary>
 /// Creates a copy of the part.
 /// </summary>
 public override Part Clone()
 {
     Part clone = new BouncyPart(BoundingRectangle);
     return clone;
 }