示例#1
0
文件: Game.cs 项目: dcd120/Game
        public static void Load()
        {
            _objs = new BaseObject[201];

            int size       = 0;
            int base_speed = 5;

            //int angleA = 0;
            //int angleB = 0;
            //for (int i = 0; i < _objs.Length / 2; i++)
            //{
            //    size = rnd.Next(10,20);
            //    angleA = rnd.Next(-1, 1);
            //    if (angleA == 0) angleA = 1;
            //    angleB = rnd.Next(-1, 1);
            //    if (angleB == 0) angleB = 1;
            //    _objs[i] = new BaseObject(new Point(rnd.Next(50,750), rnd.Next(50, 550)), new Point((base_speed - size)*angleA,(base_speed - size)*angleB), new Size(size, size));
            //}
            //for (int i = _objs.Length / 2; i < _objs.Length; i++)
            //{
            //    size = rnd.Next(3, 6);
            //    _objs[i] = new Star(new Point(rnd.Next(50, 750), rnd.Next(50, 550)), new Point(-1*(base_speed - size), 0), new Size(size, size));
            //}

            // формируем свой фон (путешествие через космос)
            // в составе объекты:
            // а) звезды разных размеров и цветов (звездочки из 4 линий)
            // б) планеты (картинки)

            for (int i = 0; i < _objs.Length - 1; i++)
            {
                size = rnd.Next(1, 2);
                // звезды случайно заполнят пространство в правой 2/3 экрана и начнут течь на лево, имитируя полет вправо
                _objs[i] = new zvezda(new Point(rnd.Next(10, Game.Width - 10), rnd.Next(10, Game.Height - 10)), new Point(rnd.Next(base_speed, base_speed + 2), 0), new Size(size, size), rnd.Next(0, 3));
            }

            _objs[200] = new Planet(new Point(400, 300), new Point(5, 0), new Size(235, 235));

            //_bullet = new Bullet(new Point(0, 200), new Point(10, 0), new Size(30, 20));
            //_asteroids = new Asteroid[70];

            //for (var i = 0; i < _objs.Length; i++)
            //{
            //    int r = rnd.Next(5, 50);
            //    _objs[i] = new Star(new Point(1000, rnd.Next(0, Game.Height)), new
            //    Point(-r, r), new Size(3, 3));
            //}
            //InitAster(_aCount);

            _heals = new Heal[3];
            for (var i = 0; i < _heals.Length; i++)
            {
                _heals[i] = new Heal(new Point(Game.Width + rnd.Next(0, Game.Width / 4), rnd.Next(0, Game.Height)), new Point(-20, 0), new Size(20, 20));
            }
        }
示例#2
0
 /// <summary>
 /// Конструктор таймера
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void Timer_Tick(object sender, EventArgs e)
 {
     createHeal = createHeal - 1;
     Draw();
     Update();
     if (createHeal == 0)
     {
         _heal      = new Heal(new Point(1000, r.Next(0, Height)), new Point(-5, 0), new Size(20, 20));
         createHeal = r.Next(300, 10000);
     }
 }
示例#3
0
        public static void Load()
        {
            Random rnd = new Random();
            int    s   = 0;

            asteroids = new Asteroid[30];
            for (int i = 0; i < asteroids.Length; i++)
            {
                s = rnd.Next(10, 30);  asteroids[i] = new Asteroid(new Point(rnd.Next(20, 1900), rnd.Next(20, 1000)), new Point(rnd.Next(3, 10), rnd.Next(3, 10)), new Size(s, s));
            }
            heal = new Heal(new Point(Game.Width, rnd.Next(20, 1000)), new Point(rnd.Next(20, 50), rnd.Next(20, 50)), new Size(5, 5));
            //bullet = new Bullet(new Point(ship.Rect.X + 60, ship.Rect.Y + 30), new Point(rnd.Next(30, 50), 0), new Size(1, 5));
        }
示例#4
0
        public static void Update()
        {
            ConsoleMessage <string> strTarget = new ConsoleMessage <string>(StringTarget);

            //foreach (BaseObject obj in objs) obj.Update();
            bullet?.Update();
            heal?.Update();
            if (heal != null && heal.Collision(ship))
            {
                if (ship.Energy <= 90)
                {
                    ship?.EnergyHeal(10); strTarget("Ship is healed");
                }
                else
                {
                    ship.EnergyClear();
                }
                Random rnd = new Random();
                heal = new Heal(new Point(Game.Width, rnd.Next(20, 1000)), new Point(rnd.Next(3, 10), rnd.Next(3, 10)), new Size(5, 5));
            }
            for (var i = 0; i < asteroids.Length; i++)
            {
                if (asteroids[i] == null)
                {
                    continue;
                }
                asteroids[i].Update();
                if (bullet != null && bullet.Collision(asteroids[i]))
                {
                    System.Media.SystemSounds.Hand.Play();
                    asteroids[i] = null;
                    bullet       = null;
                    Count++;
                    strTarget("Asteroid is hit");
                    continue;
                }
                if (!ship.Collision(asteroids[i]))
                {
                    continue;
                }
                var rnd = new Random();
                ship?.EnergyLow(rnd.Next(1, 10));
                strTarget("Ship is hit");
                System.Media.SystemSounds.Asterisk.Play();
                if (ship.Energy <= 0)
                {
                    ship?.Die();
                }
            }
        }