Esempio n. 1
0
        public void Heal(MedPack med)
        {
            Energy += med.Value;
            if (Energy > 100)
            {
                Energy = 100;
            }

            HealMessage?.Invoke();
        }
Esempio n. 2
0
        static public void Load()
        {
            Random rand = new Random();                                                // Переменная для генерации стартовой позиции и вектора для объектов

            bullets = new List <Bullet>();                                             // Инициализируем список пуль
            ship    = new Ship(new Point(10, 290), new Point(0, 0), new Size(40, 20)); // Инициализируем космический корабль


            // Инициализируем массивы звезд, задаем им позиции и векторы
            starsLittle = new BaseObject[35];
            for (int i = 0; i < starsLittle.Length; i++)
            {
                starsLittle[i] = new Star(new Point(rand.Next(-100, 800), rand.Next(0, 500)), new Point(-1, 0), new Size(1, 1));
            }

            starsMedium = new BaseObject[15];
            for (int i = 0; i < starsMedium.Length; i++)
            {
                starsMedium[i] = new Star(new Point(rand.Next(-100, 800), rand.Next(0, 500)), new Point(-2, 0), new Size(5, 5));
            }

            starsBig = new BaseObject[4];
            for (int i = 0; i < starsBig.Length; i++)
            {
                starsBig[i] = new Star(new Point(rand.Next(-100, 800), rand.Next(0, 500)), new Point(-3, 0), new Size(10, 10));
            }

            // Инициализируем списки астероидов, задаем им позиции и векторы
            asteroidsLittle = new List <Asteroid>();
            for (int i = 0; i < 3; i++)
            {
                asteroidsLittle.Add(new Asteroid(new Point(rand.Next(800, 1300), rand.Next(1, 500)), new Point(rand.Next(-5, -5), rand.Next(-5, 5)), new Size(30, 30), powLittle));
            }

            asteroidsMedium = new List <Asteroid>();
            for (int i = 0; i < 2; i++)
            {
                asteroidsMedium.Add(new Asteroid(new Point(rand.Next(800, 1300), rand.Next(1, 500)), new Point(rand.Next(-5, -5), rand.Next(-5, 5)), new Size(40, 40), powMedium));
            }

            asteroidsBig = new List <Asteroid>();
            for (int i = 0; i < 1; i++)
            {
                asteroidsBig.Add(new Asteroid(new Point(rand.Next(800, 1300), rand.Next(1, 500)), new Point(rand.Next(-5, -5), rand.Next(-2, 2)), new Size(80, 66), powBig));
            }

            // Инициализируем массив аптечек
            med = new BaseObject[2];
            for (int i = 0; i < med.Length; i++)
            {
                med[i] = new MedPack(new Point(rand.Next(800, 1300), rand.Next(1, 500)), new Point(rand.Next(-7, -5), rand.Next(-5, 5)), new Size(30, 30));
            }
        }
Esempio n. 3
0
        static public void Load()
        {
            ship = new Ship(new Point(10, 400), new Point(5, 5), new Size(220, 150));

            medPack = new MedPack(new Point(Width + 50, 700), new Point(-4, 0), new Size(50, 50));

            objs = new BaseObject[133];
            for (int i = 0; i < 100; i++)
            {
                objs[i] = new Star(new Point(rnd.Next(0, Width + 20), rnd.Next(-20, Height + 20)), new Point(-1 * rnd.Next(1, 3), 0), new Size(20, 20));
            }
            for (int i = 100; i < 130; i++)
            {
                objs[i] = new Star(new Point(rnd.Next(0, Width + 20), rnd.Next(-20, Height + 20)), new Point(-1 * rnd.Next(2, 4), 0), new Size(45, 45));
            }

            objs[130] = new Planet(new Point(1000, 300), new Point(-1, 0), new Size(100, 100), Planet.imagePlanet);
            objs[131] = new Planet(new Point(2700, 600), new Point(-2, 0), new Size(138, 138), Planet.imageSun);
            objs[132] = new Planet(new Point(2500, 120), new Point(-1, 0), new Size(110, 110), Planet.imageNeptune);

            AsteroidsLoad();
        }
Esempio n. 4
0
        static public void Update()
        {
            foreach (BaseObject obj in objs)
            {
                obj.Update();
            }

            if (asteroids.Count != 0)
            {
                for (int i = 0; i < bullets.Count; i++)
                {
                    for (int j = 0; j < asteroids.Count; j++)
                    {
                        if (bullets[i] != null && bullets[i].Collision(asteroids[j]))
                        {
                            System.Media.SystemSounds.Asterisk.Play();
                            asteroids.RemoveAt(j);
                            bullets[i] = null;
                            score++;
                            MessageToLog.Invoke("Bullet hit an asteroid");
                            MessageToLog.Invoke("Asteroid crashed");
                        }
                    }
                }
            }
            else
            {
                asteroidsCount++;
                AsteroidsLoad();
            }

            for (int i = 0; i < asteroids.Count; i++)
            {
                if (ship.Collision(asteroids[i]))
                {
                    ship.EnergyLow(50);
                    asteroids.RemoveAt(i);
                    MessageToLog.Invoke("Ship collided with an asteroid");
                }
            }

            if (ship.Collision(medPack))
            {
                System.Media.SystemSounds.Hand.Play();
                ship.EnergyHeight(50);
                medPack = new MedPack(new Point(rnd.Next(Width, Width + 10), rnd.Next(20, Height - 20)), new Point(-4, 0), new Size(50, 50));
                MessageToLog.Invoke("Ship got medpack");
            }

            for (int i = 0; i < bullets.Count; i++)
            {
                if (bullets[i] != null)
                {
                    bullets[i].Update();
                }
                else
                {
                    bullets.RemoveAt(i);
                }
            }

            foreach (Asteroid a in asteroids)
            {
                a.Update();
            }
            medPack?.Update();
        }