Esempio n. 1
0
 // Updates movement
 public void Move(List <Object> targets)
 {
     // Moving towards that target
     if (targets.Count > 0)
     {
         float   angle = 0;
         float   diff  = CUtils.Distance(targets[0].position, this.position, out angle);
         Vector2 face  = this.forward * speed * 30 * deltaTime;
         this.Translate(face);
         this.SetRotate(angle);
     }
 }
Esempio n. 2
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. 3
0
        public void SetUpAI(Tank me, Tank target)
        {
            if (me != null && target != null)
            {
                this.AddChild(bulletSprite);
                bulletSprite.Load(bulletImage);
                this.SetPosition(me.position);
                collider        = new BoxCollider(this, bulletSprite);
                point           = target.position - me.position;
                pointNormalized = Vector3.Normalize(point);
                float angle = 0;

                float diff = CUtils.Distance(point + me.position, me.position, out angle);
                this.SetRotate(angle + 90);
                collider.Draw();
            }
        }
Esempio n. 4
0
        // Setups the bullet so it will be ready to use.
        public void SetUp(Tank tank)
        {
            if (tank != null)
            {
                this.AddChild(bulletSprite);
                bulletSprite.Load(bulletImage);
                this.SetPosition(tank.position);
                collider        = new BoxCollider(this, bulletSprite);
                point           = GetMousePosition() - tank.position;
                pointNormalized = Vector3.Normalize(point);
                float angle = 0;

                float diff = CUtils.Distance(point + tank.position, tank.position, out angle);
                this.SetRotate(angle + 90);
                collider.Draw();
            }
        }
Esempio n. 5
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);
                        }
                    }
                }
            }
        }