oui c´est un roller coaster tycoon mais pour les fetes foraines,on a 2 bons modéliseurs manque plus que le scripteur: voilà un petit extrait du script:
ACTION shake_gondola_f
{
my.passable=1;
my.skill4=0;
my.skill5=0;
my.ambient=20;
my.material=mat_model;
/ /my.event=gondola_click;
/ /my.enable_click=1;
my.skill20=0.8;
my.skill6=0;
while ( 1)
{
if ( (ride_gondola==NULL)&&(random(1)>0.9))
{
ride_gondola=my;
}
vec_set(my.pos,your.pos);
//my.z+=40;
vec_set(my.pan,your.pan);
//my.pan=your.pan+90;
temp.x=0;
temp.y=0;
temp.z=40;
vec_rotate(temp,my.pan);
ent_move(temp,nullvector);
IF((my.skill4<0.02)&&(gondola_lock!=1)) {
my.skill4=RANDOM(100*(cross_speed/13)*(platte_s
peed/3.5)+120)*sin((cross_speed/13)*100);
my.skill5=0;
If(random(2)>1){my.skill6=-1;}ELSE{my.skill6=1;}
}
my.skill5+=TIME*10;
IF(my.skill5>=360) {my.skill5-=360;}
if ( my.skill4>0)
{IF(gondola_lock!=1){
IF( ( ( cross_speed/14) * ( platte_speed/8) * 2) > 0.5)
{my.skill4-=time*(cross_speed/14)*(platte_speed/8)
else {my.skill4-=time*0.5;}
}
else {my.skill4-=time*1;}
} else {my.skill4=0;}
my.tilt=sin(my.skill5)*my.skill4*my.skill6;
IF(my.tilt>180)||(my.tilt<-180) {my.skill5*=-1;}
IF((my.tilt>0)&&(my.tilt<180)) {my.tilt-=time*2;} else {my.tilt+=time*2;}
my.skill15+=time*my.skill20;
my.skill16+=time;
IF((my.skill15>=0)&&(my.skill15<2)) {my.skin=3;}
IF((my.skill15>=2)&&(my.skill15<4)) {my.skin=2;}
IF((my.skill15>=4)&&(my.skill15<=6)) {my.skin=1;}
IF(my.skill15>=6) {my.skill15-=6;}
IF((my.skill16>=40)&&(my.skill20==0.8)) {my.skill16=0; my.skill20=0.2;}
IF((my.skill16>=60)&&(my.skill20==0.2)) {my.skill16=0; my.skill20=2;}
IF((my.skill16>=50)&&(my.skill20==2)) {my.skill16=0; my.skill20=0.8;}
il ordonne les mouvements des gondoles pour faire des loops... voilà le shake qui marche déjà :
http://www.powermax.host-ados.net/shake/17.JPG