コード例 #1
0
ファイル: Game.cs プロジェクト: Trainian/CSharp_lvl2
        public static void Load()
        {
            _objs = new BaseObject[30];
            for (int i = 0; i < _objs.Length; i++)
            {
                _objs[i] = new Star();
            }

            for (int i = 0; i < _maxAsteroids; i++)
            {
                asteroids.Add(new Asteroid());
            }

            _healingBoxs = new HealingBox[1];
            for (int i = 0; i < _healingBoxs.Length; i++)
            {
                _healingBoxs[i] = new HealingBox();
            }
        }
コード例 #2
0
ファイル: Game.cs プロジェクト: Trainian/CSharp_lvl2
        private static void Update()
        {
            if (GamePoints > 20)
            {
                _ship.Win();
            }
            foreach (BaseObject obj in _objs)
            {
                obj.Update();
            }

            for (int i = 0; i < bullet.Count; i++)
            {
                bullet[i].Update();
                if (bullet[i].afterGameLockation)
                {
                    bullet.RemoveAt(i);
                    i--;
                }
            }

            if (asteroids.Count <= 0)
            {
                _maxAsteroids++;
                for (int j = 0; j < _maxAsteroids; j++)
                {
                    asteroids.Add(new Asteroid());
                }
            }

            for (int i = 0; i < asteroids.Count; i++)
            {
                if (asteroids[i] != null)
                {
                    asteroids[i].Update();
                    for (int j = 0; j < bullet.Count; j++)
                    {
                        if (i >= 0 && bullet[j].Collision(asteroids[i]))
                        {
                            SystemSounds.Hand.Play();
                            asteroids.RemoveAt(i);
                            i--;
                            bullet.RemoveAt(j);
                            j--;
                            GamePoints++;
                        }
                    }

                    if (i >= 0 && asteroids.Count > 0 && _ship.Collision(asteroids[i]))
                    {
                        _ship.EnergyLow(asteroids[i].Power);
                        SystemSounds.Asterisk.Play();
                        if (_ship.Energy <= 0)
                        {
                            _ship.Die();
                        }
                        asteroids.RemoveAt(i);
                        i--;
                    }
                }
            }

            for (int i = 0; i < _healingBoxs.Length; i++)
            {
                if (_healingBoxs[i] != null)
                {
                    _healingBoxs[i].Update();
                    if (_healingBoxs[i].Collision(_ship))
                    {
                        _ship.EnergyUp(rnd.Next(1, 3));
                        _healingBoxs[i] = null;
                    }
                }
                else
                {
                    _healingBoxs[i] = new HealingBox();
                }
            }
        }