Exemple #1
0
 /// <summary>
 /// Функция, которая двигает монстров (двигает либо по оси X, либо по Y)
 /// </summary>
 /// <param name="creatures">Общее состояние игры (Model) - в паттерне MVC</param>
 public void MoveMosters(Creatures creatures)
 {
     foreach (var m in Monsters)
     {
         if (m.Y + m.Height >= creatures.Bunkers[0].Y)
         {
             GameOver = true;
             return;
         }
         if ((Direction > 0 && m.X + GameSetting.MoveMonsterX >= GameSetting.Width) ||
             (Direction < 0 && m.X - GameSetting.MoveMonsterX < 0))
         {
             IsNeedRowDown = true;
             break;
         }
     }
     if (IsNeedRowDown)
     {
         foreach (var m in Monsters)
         {
             m.Y += GameSetting.MoveMonsterY;
         }
         IsNeedRowDown = false;
         Direction    *= -1;
     }
     else
     {
         foreach (var m in Monsters)
         {
             m.X += GameSetting.MoveMonsterX * Direction;
         }
     }
 }
Exemple #2
0
        /// <summary>
        /// Функция, которая занимается сдвигом патрона, выпущенного Игроком, и уничтожением патрона и объекта, при их столкновении
        /// </summary>
        /// <param name="creatures">Общее состояние игры (Model) - в паттерне MVC</param>
        public void MovePlayerCatridge(Creatures creatures)
        {
            var isBreak = false;

            foreach (var b in creatures.Bunkers)
            {
                if (b.X <= X && b.X + b.Width >= X + Width && b.Y + b.Height >= Y && b.Y <= Y)
                {
                    Y = -1000;
                    return;
                }
            }
            foreach (var m in creatures.Monsters)
            {
                if (m.X <= X && m.X + m.Width >= X + Width && m.Y + m.Height >= Y && m.Y <= Y) //потом сделать метод IsConflicted
                {
                    creatures.Player.Score += m.Cost;
                    creatures.Monsters.Remove(m); //может быть метод потом
                    Y       = -1000;
                    isBreak = true;
                    break;
                }
            }
            if (!isBreak)
            {
                Y -= GameSetting.MoveCatridge;
            }
        }
Exemple #3
0
 /// <summary>
 /// Функция, которая проверяет, стоит ли стрелять монстру. Если стоит, создает патрон.
 /// </summary>
 /// <param name="creatures">Общее состояние игры (Model) - в паттерне MVC</param>
 /// <param name="rnd">Генератор псевдослучайных чисел</param>
 public void MakeShot(Creatures creatures, Random rnd)
 {
     if (rnd.Next(1, 101) < 16 && PlayerOnRange(creatures.Player))
     {
         var catr = new Catridge(this);
         creatures.CatridgesMonsters.Add(catr);
     }
 }
Exemple #4
0
        static void Main()
        {
            var creatures = new Creatures();

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1(creatures));
        }
Exemple #5
0
        public Form1(Creatures creatures)
        {
            InitializeComponent();

            SetStyle(ControlStyles.OptimizedDoubleBuffer |
                     ControlStyles.AllPaintingInWmPaint |
                     ControlStyles.UserPaint, true);

            UpdateStyles();
            Creatures = creatures;
        }
Exemple #6
0
 /// <summary>
 /// Функция, которая занимается сдвигом патрона, выпущенного Монстра, и уничтожением патрона и объекта, при их столкновении
 /// </summary>
 /// <param name="creatures">Общее состояние игры (Model) - в паттерне MVC</param>
 public void MoveMonsterCatridge(Creatures creatures)
 {
     foreach (var b in creatures.Bunkers)
     {
         if (((X + Width >= b.X && X + Width <= b.X + b.Width) ||
              (X <= b.X + b.Width) && X >= b.X) && (Y + Height >= b.Y && Y <= b.Y + b.Height))
         {
             Y = 1000;
             return;
         }
     }
     if (((X + Width >= creatures.Player.X && X + Width <= creatures.Player.X + creatures.Player.Width) ||
          (X <= creatures.Player.X + creatures.Player.Width) && X >= creatures.Player.X) && (Y + Height >= creatures.Player.Y && Y <= creatures.Player.Y + creatures.Player.Height))
     {
         creatures.Player   = null;
         creatures.GameOver = true;
         Y = 1000;
     }
     Y += GameSetting.SpeedMonsterCatridge;
 }
Exemple #7
0
 /// <summary>
 /// Функция, которая обновляет состояние игрового поля и экрана
 /// </summary>
 private void NewGame()
 {
     Creatures = new Creatures();
     label1.Hide();
     label2.Hide();
 }