#include "dxstdafx.h" #include "Ship.h" Ship::Ship(void) { accelerate = brake = turnLeft = turnRight = false; velocity = D3DXVECTOR2(1,1); angularVelocity = 0.0; } Ship::~Ship(void) { } void Ship::Move(double elapsedTime) { if(accelerate) { velocity += direction/100; } if(brake) { velocity *= 0.5; } if(turnLeft) { if(angularVelocity < 0.174532925) //10 degrees angularVelocity += 0.8 * elapsedTime; } if(turnRight) { if(angularVelocity > -0.174532925) angularVelocity -= 0.8 * elapsedTime; } velocity = D3DXVECTOR2(cos(-angularVelocity * elapsedTime) * velocity.x + sin(-angularVelocity * elapsedTime) * velocity.y, -sin(-angularVelocity * elapsedTime) * velocity.x + cos(-angularVelocity * elapsedTime) * velocity.y); direction = D3DXVECTOR2(cos(-angularVelocity * elapsedTime) * direction.x + sin(-angularVelocity * elapsedTime) * direction.y, -sin(-angularVelocity * elapsedTime) * direction.x + cos(-angularVelocity * elapsedTime) * direction.y); position += velocity * elapsedTime; }