Example #1
0
 /// <summary>
 /// Метод, описывающий получение урона.
 /// </summary>
 /// <param name="damage">Количество жизней, которые следует отнять у объекта</param>
 public void GetDamage(int damage)
 {
     System.Media.SystemSounds.Asterisk.Play();
     Health -= damage;
     EnemyMessage?.Invoke(this, new MessageEventArgs("Астероид поврежден.", damage, MessageEventArgs.EventTypeEnum.GotDamage));
     if (Health <= 0)
     {
         Die();
     }
 }
Example #2
0
        /// <summary>
        /// Метод обновления параметров объекта.
        /// </summary>
        public override void Update()
        {
            //Движение объекта вдоль координат X и Y
            Pos.X = Pos.X + Dir.X;
            Pos.Y = Pos.Y + Dir.Y;

            if (Pos.X < -Size.Width || Pos.Y < -Size.Height || Pos.Y > ScreenSize.Height + Size.Height)
            {
                //Если объект доходит до края экрана, то генерируется событие
                EnemyMessage?.Invoke(this, new MessageEventArgs("Астероид не был уничтожен, и теперь направляется в сторону планеты.", -2, MessageEventArgs.EventTypeEnum.OutOfScreen));
            }

            //Поворот объекта на заданный угол
            Angle += DAngle;
            if (Angle >= 360) //Если угол больше или равен 360 градусов, то он выставляется в 0
            {
                Angle = 0;
            }
        }
Example #3
0
 /// <summary>
 /// Метод, описывающий смерть объекта.
 /// </summary>
 public void Die()
 {
     System.Media.SystemSounds.Exclamation.Play();
     EnemyMessage?.Invoke(this, new MessageEventArgs("Астероид уничтожен!", Points, MessageEventArgs.EventTypeEnum.Killed));
 }