public override void Collision(Box box)
 {
     if (box is Bullet)
     {
         Bullet bul = box as Bullet;
         if (!bul.Enemy) Damage(bul.Damage);
         box.Destroy();
         Trigger();
     }
 }
 public override void Collision(Box box)
 {
     if (box is Player)
     {
         p = box as Player;
         if (p.Fall & p.Position.Y < Position.Y - 120)
         {
             p.OnPlatform();
             ON = true;
             zanizh = Zanizh();
             if (zanizh < 5)
             {
                 p.Position.Y += 5;
             }
         }
     }
 }
 public override void Collision(Box box)
 {
     //Взял монетку
     if (box is Coin)
     {
         Coin d = box as Coin;
         d.Nominal = 0;
         box.Destroy();
         World.Objects.Add(new BonusTake((int)box.Position.X, (int)box.Position.Y));
     }
     //Потрогал другой робот
     if (box is StupidRobot)
     {
         Damage(1);
     }
     //Подорвался на бомбе
     if (box is Explosion)
     {
         Explosion exp = box as Explosion;
         if (exp.Damage != 0) Damage(exp.Damage);
     }
 }
 public override void Collision(Box box)
 {
 }
Beispiel #5
0
 /// <summary>
 /// Добавление объекта в очередь на создание
 /// </summary>
 /// <param name="newobject"></param>
 public static void NewObject(Box newobject)
 {
     Spool.Add(newobject);
 }
Beispiel #6
0
 /// <summary>
 /// Установка объекта слежения камеры и установка первоначальной позиции камеры
 /// </summary>
 /// <param name="obj"></param>
 public void SetTrackingObject(Box obj)
 {
     TrackingObject = obj;
 }
Beispiel #7
0
 /// <summaru>
 /// Конструктор экрана, с указанными размерами.
 /// Делается после загрузки карты (устанавливаются границы для движения камеры).
 /// </summary>
 /// <param name = "x">Координата X</param>
 /// <param name = "y">Координата Y</param>
 /// <param name = "width">Ширина видимого экрана</param>
 /// <param name = "height">Высота видимого экрана</param>
 public Screen(Box trackingObject, int x, int y, int width, int height)
 {
     TrackingObject = trackingObject;
     RightMapPixelPixel = World.Width * TileSize - 1;
     BottomMapPixel = World.Height * TileSize - 1;
     RightLimit = World.Width * TileSize - width;
     BottomLimit = World.Height * TileSize - height;
     CameraCenter.X = width / 2;
     CameraCenter.Y = height / 2;
     viewport = new Viewport(x, y, width, height);
     BackShiftX = width / 2 - Width / 2;
     BackShiftY = height / 2 - Height / 2;
     PhantomColor = 255;
     CameraReal.X = trackingObject.Center().X - CameraCenter.X;
     CameraReal.Y = trackingObject.Center().Y - CameraCenter.Y;
     Camera = CameraReal;
 }
Beispiel #8
0
 /// <summaru>
 /// Конструктор экрана. Размеры устанавливаются на весь экран.
 /// Делается после загрузки карты (устанавливаются границы для движения камеры).
 /// </summary>
 public Screen(Box trackingObject)
 {
     TrackingObject = trackingObject;
     RightMapPixelPixel = World.Width * TileSize - 1;
     BottomMapPixel = World.Height * TileSize - 1;
     RightLimit = World.Width * TileSize - Width;
     BottomLimit = World.Height * TileSize - Height;
     CameraCenter.X = Width / 2;
     CameraCenter.Y = Height / 2;
     viewport = new Viewport(0, 0, Width, Height);
     BackShiftX = 0;
     BackShiftY = 0;
     PhantomColor = 255;
     CameraReal.X = trackingObject.Center().X - CameraCenter.X;
     CameraReal.Y = trackingObject.Center().Y - CameraCenter.Y;
     Camera = CameraReal;
 }
Beispiel #9
0
 /// <summary>
 /// Проверка на коллиюию с указанным объектом
 /// </summary>
 /// <param name="CompareObject">Проверяемый объект</param>
 /// <returns></returns>
 public void CollisionTest(Box CompareObject)
 {
     if (this == CompareObject | !CollisionTests) return;
     Rectangle o1 = new Rectangle((int)Position.X + SpaceSide, (int)Position.Y + SpaceTop, Width - SpaceSide * 2, Height - SpaceTop);
     Rectangle o2 = new Rectangle((int)CompareObject.Position.X + CompareObject.SpaceSide, (int)CompareObject.Position.Y + CompareObject.SpaceTop,
         CompareObject.Width - CompareObject.SpaceSide * 2, CompareObject.Height - CompareObject.SpaceTop);
     if (o1.Intersects(o2)) Collision(CompareObject);
 }
Beispiel #10
0
 /// <summary>
 /// Действие при коллизиях с указанным объекта
 /// </summary>
 /// <param name="box">Объект, с которым произошло столкновение</param>
 public abstract void Collision(Box box);