using the code below, when the player touches the skycar for the first time, the skycar is takingoff and landing properly..
but again after landing when the player again touches it, it's not takingoff.
pls suggest any solution..
code:
var forward_speed = 4;
function player_ship_function
{
////////////////////////////////////////////////////////////////////////
//local variables for ship movement to be adjusted when playtesting
var rise_speed_key = 1; //rise and fall speed when using the i and k keys
var pan_speed_key = 2; //pan speed when using j and l keys to turn
var roll_speed_player = 2; //roll speed when turned by player
var roll_speed_level = 1.5; //speed which the ship levels itself
var roll_extent = 18; //ship can roll to this extent angle
var tilt_speed_player = 0.5; //tilt speed when ship is rising and falling
var tilt_speed_level = 0.5; //tilt speed when ship is leveling off
//tilt angle up and down are not equal for better visual effect when flying
var tilt_extent_up = 3; //ship can tilt up to this angle
var tilt_extent_down = -3; //ship can tilt down to this angle
//relates to mouse force, the ship will not roll when the mouse force falls between
//this value and - this value, smooths out animation when using mouse
var roll_force_extent = 0.15;
var verticle_extent = 700; //extents for rising and falling
////////////////////////////////////////////////////////////////////////
//collision detection and ship health section
my.enable_entity = on; // sensitive to collision with other entities
my.event = player_hit_event; //triggered on collision
player = me;
while(my.z<50)
{
my.z +=1 ;
wait(1);
}
//my.z = 100; //turn the ship 100 degrees, orig pos = [1,0]
sleep(2);
while (player!=null)
{
player.pan += pan_speed_key * (key_j - key_l) * time;
//triggers if ship has exceeded movement range
if (player.z > verticle_extent) || (player.z < -verticle_extent)
{
//if player ship reaches the extents and new mouse force or key force
//is applied in the direction of the extent, only verticle movement is possible
if (((my.z > verticle_extent) && (key_i)) || ((my.z < -verticle_extent) && (key_k)))
{
if(key_k == 1 && my.z<40 )
{
forward_speed = 0;
}
//c_move (player, vector(forward_speed,0, time - rise_speed_key * (key_k - key_i)), nullvector, ignore_passable);
c_move (player, vector(forward_speed,0, 0), nullvector, ignore_passable);
}
else
{
if(key_k == 1 && my.z<40)
{
forward_speed = 0;
}
//normal flight
c_move (my, vector(forward_speed,0, time - rise_speed_key * (key_k - key_i)), nullvector, ignore_passable);
}
}
else
{
if(key_k == 1 && my.z <40)
{
forward_speed = 0;
}
//normal flight
c_move (player, vector(forward_speed,0, time - rise_speed_key * (key_k - key_i)), nullvector, ignore_passable);
}
////////////////////////////////////////////////////////////////////////
//ship will roll in the direction of the pan and level out when no force is applied
if (my.roll <= roll_extent && key_l)
{
my.roll += roll_speed_player * time;
}
if (my.roll >= -roll_extent && key_j)
{
my.roll -= roll_speed_player * time;
}
if ((my.roll > 0) && (key_l == 0))
{
my.roll -= roll_speed_level * time;
}
if ((my.roll < 0) && (key_j == 0) )
{
my.roll += roll_speed_level * time;
}
if (key_i == 1 && tilt_extent_up<=0 )
{
while(key_i == 1)
{
wait(1);
}
tilt_speed_player + = 1;
}
if (key_k == 1 && tilt_extent_down>=0)
{
while(key_k == 1)
{
wait(1);
}
tilt_speed_player - = 1;
}
wait(1);
}
}
action player_ship_action
{
my.enable_impact = on;
my.event = player_ship_function;
}
/////////////////when it touches the ground////////////
function cancell
{
forward_speed = 0;
my.z = -50;
player = me;
}
action cancel // this action is assigned to ground
{
my.enable_impact = on;
my.event = cancell;
}