Hey all
Im working on a simple 2d asteroids game at the moment. I have most 
of it working but there is one part that aint working the way id 
like. Basically whats happening is that when the up key(thrust) is 
not being pressed that the ship should slow down to a stop. in the 
direction it was going. Here is the code im using at the moment 
using Borland Builder 6.
struct vector{
        float x;
        float y;
};

const int SHIP_NUM_POINTS=4; //number of points in ship's polygon
struct Ship{
        vector points[SHIP_NUM_POINTS]; //points of ship's polygon
        vector position;
        vector velocity;
        vector direction;     // direction ship is currently pointing
        //vector pos[SHIP_NUM_POINTS];
        float rateOfAccel;      // how fast can we accelerate
        float friction;         // how fast do we slow down
        float rotation;         // how fast do we spin
        int radius;             // the size of the circle which 
contains the ship
        bool alive;             // whether the ship is alive or dead
}theShip;               


the following is in a function to update the ship that is called 
from a timer

else if(theKeys.up == false)
{
              if (ship.velocity.x > 0)
              {
                    ship.velocity.x = ship->velocity.x - .5;
                    if (ship->velocity.x < 0)
                    {
                             ship->velocity.x = 0;
                    }
               }
               else if (ship.velocity.x < 0)
               {
                     ship.velocity.x = ship->velocity.x + .5;
                     if (ship->velocity.x > 0)
                     {
                            ship->velocity.x = 0;
                      }
               }


               if (ship.velocity.y > 0)
               {
                      ship.velocity.y = ship->velocity.y - .5;
                      if (ship->velocity.y < 0)
                      {
                            ship->velocity.y  = 0;
                      }
               }
               else if (ship.velocity.y < 0)
               {
                      ship.velocity.y = ship->velocity.y + .5;
                      if (ship->velocity.y > 0)
                      {
                               ship->velocity.y  = 0;
                      }
               }



        }

im trying to get the ships position to continue in the direction it 
was going but just slow down.. this code does slow it down but 
eventually one of the velocity co ordinates reaches 0 first which 
makes the ship move while slowing down along that axis.. 
not sure if ive given enough info to show what im trying to do so if 
someone whats me to email the project to get a better understanding 
let me know
thanks
g    

Reply via email to