Esempio n. 1
0
 public void MoveAI(float deltaTime, Tank target, AmmoBox ammoBox)
 {
     if (tankObject != null && target != null)
     {
         if (!stopTank)
         {
             if (ammo <= 0)
             {
                 ammo = 0;
                 float angle = 0;
                 currentTarget = new Vector2((ammoBox.collider.corners[0].x + ammoBox.collider.corners[2].x) / 2, (ammoBox.collider.corners[0].y + ammoBox.collider.corners[2].y) / 2);
                 float   diff = CUtils.Distance(ammoBox.position, tankObject.position, out angle);
                 Vector2 face = tankObject.forward * tankSpeed * 30 * deltaTime;
                 tankObject.Translate(face);
                 tankObject.SetRotate(angle);
             }
             else
             {
                 float angle = 0;
                 currentTarget = new Vector2((target.collider.corners[0].x + target.collider.corners[2].x) / 2, (target.collider.corners[0].y + target.collider.corners[2].y) / 2);
                 float   diff = CUtils.Distance(target.position, tankObject.position, out angle);
                 Vector2 face = tankObject.forward * tankSpeed * 30 * deltaTime;
                 tankObject.Translate(face);
                 tankObject.SetRotate(angle);
             }
             if (!CUtils.IsObjectInScreen(tankObject))
             {
                 if (position.y < 0 - tankScreenOffset)
                 {
                     tankObject.SetPosition(position.x, GetScreenHeight());
                 }
                 if (position.y > GetScreenHeight())
                 {
                     tankObject.SetPosition(position.x, 0 - tankScreenOffset);
                 }
                 if (position.x < 0 - tankScreenOffset)
                 {
                     tankObject.SetPosition(GetScreenWidth(), position.y);
                 }
                 if (position.x > GetScreenWidth())
                 {
                     tankObject.SetPosition(0 - tankScreenOffset, position.y);
                 }
             }
         }
     }
 }
Esempio n. 2
0
        // This is used to move the tank
        public void Move(float deltaTime)
        {
            if (tankObject != null)
            {
                if (collider.IsOverlapping2(mousePoint))
                {
                    stopTank = true;
                }
                else
                {
                    stopTank = false;
                }
                // Boolean used to stop the tank
                if (!stopTank && !collider.IsOverlapping2(mousePoint))
                {
                    float   angle = 0;
                    float   diff  = CUtils.Distance(GetMousePosition(), tankObject.position, out angle);
                    Vector2 face  = tankObject.forward * tankSpeed * 30 * deltaTime;
                    tankObject.Translate(face);
                    tankObject.SetRotate(angle);
                    // Just checking to see if the tank is out of the screen and if it is It will come back on the a different part of the screen

                    if (!CUtils.IsObjectInScreen(tankObject))
                    {
                        if (position.y < 0 - tankScreenOffset)
                        {
                            tankObject.SetPosition(position.x, GetScreenHeight());
                        }
                        if (position.y > GetScreenHeight())
                        {
                            tankObject.SetPosition(position.x, 0 - tankScreenOffset);
                        }
                        if (position.x < 0 - tankScreenOffset)
                        {
                            tankObject.SetPosition(GetScreenWidth(), position.y);
                        }
                        if (position.x > GetScreenWidth())
                        {
                            tankObject.SetPosition(0 - tankScreenOffset, position.y);
                        }
                    }
                }
            }
        }
Esempio n. 3
0
 // Updates if they exists.
 public void Update(float deltaTime)
 {
     for (int i = 0; i < objects.Count; i++)
     {
         if (!CUtils.IsObjectInScreen(objects[i]))
         {
             objects[i] = null;
             objects.Remove(objects[i]);
         }
     }
     foreach (Bullet obj in objects)
     {
         if (obj != null)
         {
             obj.Run(deltaTime);
         }
         else
         {
             objects.Remove(obj);
         }
     }
 }