Update() private method

private Update ( ) : void
return void
コード例 #1
0
        public override void Update(GameTime gameTime)
        {
            foreach (var room in Rooms)
            {
                room.Update(gameTime);
                Boolean playerInRoom = false;
                if (room.IsInRoom(Player.NewPosition))
                {
                    Player.Update(gameTime);

                    var collidedWall = room.CollidesWithWall(Player.BottomVertex, Player.UpVertex);
                    if (!Game.godMode)
                    {
                        Player.CollidedWith(collidedWall);
                    }
                    room.CheckCollectiblesCollision(Player);
                    room.CheckObstacleCollision(Player);
                    playerInRoom = true;
                }

                var bullets = Bullets.FindAll(bullet => room.IsInRoom(bullet.BottomVertex) || room.IsInRoom(bullet.UpVertex));
                var enemies = Array.FindAll(Enemies, enemy => room.IsInRoom(enemy.Position));
                bullets.ForEach(b => b.Update(gameTime));
                foreach (var enemy in enemies)
                {
                    enemy.Update(gameTime);
                    var collidedWall = room.CollidesWithWall(enemy.BottomVertex, enemy.UpVertex);
                    if (!(collidedWall is null))
                    {
                        enemy.CollidedWith(collidedWall);
                    }
                    room.CheckObstacleCollision(enemy);
                    if (playerInRoom && Player.CollidesWith(enemy.BottomVertex, enemy.UpVertex) && !Game.godMode)
                    {
                        enemy.CollidedWith(Player);
                    }
                    var collidedBullets = bullets.FindAll(bullets => bullets.CollidesWith(enemy.BottomVertex, enemy.UpVertex));
                    collidedBullets.ForEach(b => b.CollidedWith(enemy));
                }
                bullets.FindAll(b => room.CollidesWithWall(b.BottomVertex, b.UpVertex) != null).ForEach(b => b.CollidedWith());
                bullets.ForEach(b => room.CheckObstacleCollision(b));
            }
            Lamp.Update(gameTime);
            Lamp2.Update(gameTime);
        }