Ive been working on this all day, Im stumped! For some reason whenever I start the engine, my model, a car, starts to move backwards very slowly. Everything else works as normal. I cant figure out the reason for this strange backwards movement, any help would be appreciated.
Code:
var video_mode = 7; // 800x600 pixels
var video_depth = 32; // 32 bit mode
////////////////////////////////////////////////////////////////////////////////////
string homework18_wmb = <homework18.wmb>;
ENTITY* car;
bmap bmpSpeed = "speedometer.bmp";
////////////////////////////////////////////////////////////////////////////////////
var accel = 1; //acceleration
var reverse = -1; //reverse acceleration
var absSpeed = 1; //universal speed, to be displayed by the speedometer negative numbers are reverse for now
function main()
{
fps_max = 30;
level_load (homework18_wmb);
wait (3);
while(1) //set up the camera
{
camera.x = car.x;
camera.y = car.y - 300;
camera.z = car.z + 1000;
camera.pan = 90; // set the correct orientation for the camera
camera.tilt = -68; // using its pan and tilt angles
wait(1);
}
}
panel speedometer
{
pos_x = 0;
pos_y = 0;
layer = 1;
bmap = bmpSpeed;
digits(35,45,3,_a4font,1,absSpeed);
flags = overlay, visible;
}
action my_car
{
car = me;
my.fat = on;
my.narrow = on;
c_setminmax(my);
while (1)
{
// move the car using relative_speed
if (key_a == on) //pans the car, but only if moving
{
if(accel != 0)
{
my.pan += 5; // increase the pan angle of the car
}
if(reverse != 0)
{
my.pan += 5; // decrease the pan angle of the car
}
}
if (key_d == on) //pans the car, but only if moving
{
if(accel != 0)
{
my.pan -= 5; // decrease the pan angle of the car
}
if(reverse != 0)
{
my.pan -= 5; // decrease the pan angle of the car
}
}
if (key_w == on) //while pressing w...
{
accel += 1; //accelerate by increasing the x value...
c_move (my, vector(accel,0, 0), nullvector, glide); //in this vector
if(accel >= 40) //car cannot exceed 40 speed
{
accel = 40;
}
if(accel >= 1) //set up the value for the speedometer to display
{
absSpeed = accel; //speedometer value == accel
}
}
if(key_w == off) //if you let off on the gas...
{
accel -= .5; //decelerate
c_move(my,vector(accel,0,0),nullvector,glide);
if(accel <= 1) //stop decelerating when not moving
{
accel = 0;
}
if(accel >= 1) //set up values for speedometer
{
absSpeed = accel;
}
}
if(key_s == on) //when hitting reverse
{
c_move(my,vector(reverse,0,0), nullvector, glide); //decrease x value
reverse -= 1; //in this vector to back up
if(reverse < -18)
{
reverse = -18;
}
if(accel <= 1) //set up values for speedometer
{
absSpeed = reverse;
}
}
if(key_s == off) //when you let off on the gas
{
c_move(my,vector(reverse,0,0),nullvector,glide); //slow down
reverse += 1;
if(reverse >= -1)
{
reverse = 0;
}
if(accel <= 1) //set up values for speedometer
{
absSpeed = reverse;
}
}
if(key_space == on) //brakes
{
if(accel > 0)
{
accel -= 2.5;
}
if(reverse < 0)
{
reverse += 2.5;
}
}
wait (1);
}
}
This is some modified and reworked code from the c-script tutorial, Im new to Gamestudio. Im using Gamestudio trial version 6.40.5. Thanks