コード例 #1
0
        public void Update(float elapsedTime)
        {
            if (player != null)
            {
                player.Update(elapsedTime);
                lastPlayerPosition = player.Position;


                EnemyController.PlayerPosition = player.Position;
                if (!GameplayScreen.TimeFactors.ContainsKey(Player.UniqueName))
                {
                    GameplayScreen.TimeFactors.Add(Player.UniqueName, Player.TimeAdjustment);
                }
                else
                {
                    GameplayScreen.TimeFactors[Player.UniqueName] = Player.TimeAdjustment;
                }

                BulletController.AddBullets(Player.BulletsFired);
                Player.BulletsFired.Clear();

                Player.Collide(BulletController.Bullets);
                Player.Collide(EnemyController.Enemies);


                if (player.Health <= 0)
                {
                    if (ParticleController != null)
                    {
                        var center = player.Position;

                        for (int i = 0; i < 30; i++)
                        {
                            double rot     = random.NextDouble() * Math.PI * 2.0;
                            var    partVel = new Vector2((float)(Math.Cos(rot) * 6.0), (float)(Math.Sin(rot) * 4.0 - 2.0));
                            ParticleController.Particles.Add(new Particle(center, partVel, Color.Red));
                        }
                    }

                    GeneratePlayer(3000f);
                    lives--;
                }
            }

            BulletFactory.PlayerPosition = lastPlayerPosition;

            GameOver = lives <= 0;
        }
コード例 #2
0
ファイル: EnemyController.cs プロジェクト: alyons/ChaosDrive
 public virtual void Enemy_ShotsFired(object sender, EnemyShootingEventArgs e)
 {
     BulletController.AddBullets(e.Bullets);
 }