I've looked the code of planet survivor (AUM37), but I haven't understood some part of the code.
First the cutscene.
Code:
 while (my.x < 3000)
{
my.roll += 1.5 * time;
ent_playsound (my, engine1_wav, 300);
my.x += 52 * time;
vec_set(temp, my.x);
vec_sub(temp, camera.x);
vec_to_angle(camera.pan, temp);
wait (1);
}


So...
The player roll and move until his x is 3000 whit a speed of 52 units * time
But the camera?

Second
Code:
  while (my.shield > 0)
{
camera.tilt += 10 * mouse_force.y * time;
camera.pan -= 10 * mouse_force.x * time;
if ((camera.pan > 30) && (camera.pan < 330)) // don't allow the player to blow our cover (if it looks back)
{
if (camera.pan < 180)
{
camera.pan = 30;
}
else
{
camera.pan = 330;
}
}
if (camera.tilt < -35)
{
camera.tilt = -35;
}
if (camera.tilt > 25)
{
camera.tilt = 25;
}
my.pan = camera.pan;
my.tilt = camera.tilt;


This code must force the tilt and the pan of the camera right?
I don't know why, but this only work for the tilt Oo

Code:
function destroy_asteroid()
{
my.x = -30000;
wait (1);
my.event = null;
ent_create (explo6_pcx, my.pos, explode_me);
my.passable = on;
my.invisible = on;
ent_playsound (my, hit_wav, 1000);
sleep (2);
ent_remove(my);
}

function move_asteroid
{
var meteor_angle;
var meteor_speed;
my.enable_impact = on;
my.enable_entity = on;
my.event = destroy_asteroid;
my.scale_x = 5 + random(10);
my.scale_y = my.scale_x;
my.scale_z = my.scale_x;
my.skill10 = my.scale_x; // store the scale in skill10 - we will use it to adjust the size of the explosion later
meteor_angle.x = 3 - random(6); // random pan speed
meteor_angle.y = 3 - random(6); // random tilt speed
meteor_angle.z = 3 - random(6); // random roll speed
meteor_speed.x = (-100 - random(80)) * time;
meteor_speed.y = 0;
meteor_speed.z = 0;
while (my.x > -21000)
{
my.pan += meteor_angle.x * time;
my.tilt += meteor_angle.y * time;
my.roll += meteor_angle.z * time;
move_mode = ignore_you + ignore_passable;
ent_move (nullvector, meteor_speed);
wait (1);
}
ent_remove (my);
}

action asteroid_maker
{
fog_color = 1;
var temp_var;
my.passable = on;
my.invisible = on;
while (1)
{
temp.x = my.x;
temp.y = 5000 - random(10000); // -5,000 to 5,000
temp.z = 1000 - random(2000);
if (ready_to_play == 0) // game not started yet?
{
if ((temp.y > -500) && (temp.y < 500)) // the asteroid is too close to the player during the cut scene?
{
temp.y = 500; // then avoid the player until it is able to control the ship
}
}
temp_var = random(1);
ent_create (asteroid1_mdl, temp, move_asteroid);
wait (2);
}
}



I've some problem with this too.
Asteroids collide each other and generate an explosion
Some of this asteroids seems to be not passable, so if I hit it with the rocket these continue moveing.

Thx for all explaination
----
and sorry for my bad english >_<


~Vision Divine~