示例#1
0
        private void LoadLevel(String file)
        {
            World.Clear();
            GoodCellList.Clear();
            VirusList.Clear();

            _level    = _levelParser.Parse(Texture2D.FromStream(Game1.graphics.GraphicsDevice, new FileStream(file, FileMode.Open)));
            _wallList = _level.GetWalls();


            foreach (var item in _level.GetFriendlies())
            {
                GoodCellList.Add((GoodCell)item);
            }

            foreach (var item in _level.GetEnemies())
            {
                VirusList.Add((Virus)item);
            }

            _objectList = _level.GetFriendlies();
            _objectList.AddRange(_level.GetEnemies());

            _player = _level.Player;
        }
示例#2
0
 private void HandleEndConstraints()
 {
     if (GoodCellList.Count == 1 && GoodCellList.First().IsInfected())
     {
         _winStatus              = false;
         _timeStepFactor         = 0.3f;
         Camera2D.EnableTracking = false;
         Camera2D.Position       = LastGoodCellPosition;
         _endTimer.Start();
     }
     else if (VirusList.Count == 0)
     {
         _winStatus = true;
         SmileyfyGoodCells();
         _endTimer.Start();
     }
 }
示例#3
0
 private void RegisterGameObjects()
 {
     foreach (var item in _addList)
     {
         if (item is Virus)
         {
             VirusList.Add((Virus)item);
             _objectList.Add(item);
         }
         else if (item is GoodCell)
         {
             GoodCellList.Add((GoodCell)item);
             _objectList.Add(item);
         }
     }
     _addList.Clear();
 }
示例#4
0
        private void TestInit()
        {
            World = new World(Vector2.Zero);

            _objectList = new List <ActiveGameObject>();

            _player = new PlayerCell(this, new Vector2(0));

            GoodCell goodCell = new GoodCell(this, new Vector2(300, 100));

            GoodCellList.Add(goodCell);
            _objectList.Add(goodCell);
            _objectList.Add(new Virus(this, new Vector2(200, -200)));


            //Vertices vertices = new Vertices();
            //vertices.Add(new Vector2(-300, -200));
            //vertices.Add(new Vector2(-200, -150));
            //vertices.Add(new Vector2(-100, -200));
            //vertices.Add(new Vector2(-160, -300));
            //vertices.Add(new Vector2(-240, -300));

            //_wallList.Add(new Wall(vertices, Wall.WallType.Outer, this));

            Vertices vertices = new Vertices();

            vertices.Add(new Vector2(-200, 200));
            vertices.Add(new Vector2(-150, 225));
            vertices.Add(new Vector2(-100, 200));
            vertices.Add(new Vector2(-125, 250));
            vertices.Add(new Vector2(-100, 300));
            vertices.Add(new Vector2(-150, 275));
            vertices.Add(new Vector2(-200, 300));
            vertices.Add(new Vector2(-175, 250));

            _wallList.Add(new Wall(vertices, Wall.WallType.Outer, this));
        }
示例#5
0
 public void RemoveGoodCell(GoodCell goodCell)
 {
     GoodCellList.Remove(goodCell);
     _removeList.Add(goodCell);
     goodCell.UpForRemoval = true;
 }