XYrq8/|E3PX ( @ (//(  0/80@0?/8 0( ?G@POWOXOP?H0@/7@O_``h_hPX 0(P_oppxow_g@O/8'' 7p`o?G/7 0??H/8`/o?GOX@H0?/pOW?H/8 7OP?G/7( P0@PX@O0@ 0O @H/@' 00@@P0?'_OP@H( 7/7' ^^^^^^^^^^^^^^^^^^^^^^^^^^TeeBBBBeTT^^^^^^^eBDJ33333JJDBeZ^^^^TD33==#####==3JDBT^^^^eJ=###=3DeZ^^TB3# #=3JBZ^^T3#  #=JBT^^J# Sll #=JBZ^T# %,68??86,/@A*< ##45('.6787-9%:;*<=#$+&,--.,/01)2 3 $%&&'%($!)* ##  !"#     ??dL_Z@6global_optionsZ-X+ :xM F3x7FW^xD=6%R(i^Jd'$jx<^s^uPϵ(/{<0^Xkie<0%C >|(PCe?Y-P/7b,0-hm7o:wRllNۊt19K~^:畘of!T]>|[Gw^}$b2p^\3;ðXL,y,INݖmbif֟$#H5M>|(PC >|(PC>oYYm0羶Ek11 add_objectZ-X+ Ox10 E8 sN{%ʯ㦥?55N?Q$P9wcߍ{74><6+]ǿ"|pV2%>@>@>@+*7}xx-O9jZt0},/6O!o5+tu,ޏtz<O}5bt?QE2!_x]Gt# [y1Vm3Ά䭧Ei,Xz?uךUj_5%c!9W @>@>@>-(q{B<og(default_sprite  xs5a3 b(fdH@Q@>(JL&2 ' M& OE1hV|bw 9܃>C|C5 w:~OT[0]x mini_barre  ?xɱ QhI =L~x!+:QNun+Tsave  Lxs5a3 b(fdH@Q@(;?j6PF5700G揚OS4 iload  dxs5a3 b(fdH@Q@($*QG5Q|  D.COX/11T34h 2O߀ fleche_droite  xM Pw-;kiߝ%iRa:O0Ayq:3x~)p }k4VJIRO)_$3S>9'La _,sd/޷ ﷮rge/?"kg}YkWtL fleche_gauche  x= P='`&ީ7W" @KN$yսq 6ɩ;غ~)Yr,K|2էx'c|ps*ԗ,)$q] ǧH|L?[DoU_NLfleche_meg_gauche  x1 P='p&ީ7W" )6e}P¶cjMcIc.cS^(돢hDf9W;f1u巓joe+M}^F|r+},qqYq~DS|Rso KRp)>At<ܯR{qfleche_meg_droite  x; 0 `='p.)7D'ڐPTJih}Um5o9@u)x;_Be)\")S[??Y߰>cY}+}2. |cc*U˯<{play  xֽ a l G@"$?U$K܏0 kڥ8s&?o)QַM<7Iо+,_܊b(nw .qd/A_&J2[o(9_?tpause  Jxs5a3 b(fdH@@65QG5QG5|<Ӱ}KS corbeille  xs5a3 b(fdH@Q@("5(4^0ͧ b @D# im>|ihVP|4Pb>V1m1Ki-rE(t?VShn2u_4r?& |R $YAQ4 sprite_ch x}R0 t^H2POI(M&BN>Ec;cb= 떞tg*\[)gE ]9-:D"%3bɀC]E- xKoؠ0U1zKгPU0p((JT[*A_Fxi4m{| Gܑ8Y-PǑמצY3=8NqOod*"es@Jd 3+˃ߑUrMrIltvzʺ(lᰖ7URT00)?FgG9O9tt1/%Z2tfMaR}t:dK##7Lr_'Xbc~sprite16  Qxs5cf3 b(fdH@QG GK8" "Y _wA  E]sprite17  Axs5cf3 b(fdH@QHG$I PU0"R=H Dͧnx4y1usprite18  x0 q8z 8|q];UKg1]\\Ӳo˾=}!]'eYK!M bq$oځQܒ!P_I{9}y1B6oe毉~yk~ k,ۏ>%EzPpDыm sprite19  x1 t:v 2Am#Zb)[8&ujsprite20  xՖ= qٸ{'o_Dl˃FmZT@-bĖؽfiX+sHX( seHxJ$yd8% ]vzlG/%^Xo> 4!@?z_jZ]5K`]tsprite21  x1 t:v 2Am#Zb)[8&ujsprite22  vxUA s}O( :IfhM$a~>/5 G]^XJքV>GuRbזՎumc jGJ 8 (SgI.x=(^vR@-ÅtEiu%+@"<7dXv( .ߟK1&4Q] Œ"PS`WS^@_DA(c?M8bISݡv[ SZL!OG.>|ӐBj*%1r(8QMn,x?E<N~O݉v ''>x].j K#sprite23  xՖ= qٸ{'o_Dl˃FmZT@-bĖؽfiX+sHX( seHxJ$yd8% ]vzlG/%^Xo> 4!@?z_jZ]5K`]tsprite24  xA E˞uމq3/ԝ`!~I>>6N52oC6 jǑB')1ᲒKRpX I?(^ē*15 |q`EHR򭐋$T{%dWꍢ·p࣒|)豒C"9,~(Iя*GX"HkZUS4*[dH }·otx9Fa? mMsprite26  _xVK0 soNaϝrŖd@͸OZn˩=ew^?\nڢQD (޺rz2GhC9gZ3̖s5H{ |mÐB)ڒ,/-? ٴ[q e⋴TYy,e!8U0-]Dͻ]^p 豒C"9,~(Iя*GX"HkZUS4*[dH }·otx9Fa? mMsprite27   x픱j0եhA< Yb%'0=JM z=8ЪIN܋16'#y'tp9n7a]T>+vBmj2mbi4%N}lD;%qȢ5G* 4Œ(쒟r͉X14oS %rSqr[wGJ`ؠKo/|KC ~e{H}\t~%Շ@k]SYDW;sprite28  x=! c,-=֎wܰPih<˙>k'lw.T>Q!3o(!i'Q40%?*AHA~)G)hؑJ4-a[}: `OSʤKK]+< 1ZE|̳+}Ffl%ldRoM]O#^ipVVibsprite29  %x;0 93bN&B#~뾭]v[CBYobqmbAfbUZ=dfh-^ E:=-YhW ApD$[/5I.GQ" e{yeBmftď|$8^w>3g*i: ݡ:TWLw NFagȝ8&"H[Էނ. K;۪jubYH >Qϋ5c2Sh_کsprite30   xs5cc3 b bF T8:""Qvi6uM G|9VSKFΙ7hUۻoZ*i^ػm/ als(ZA &ys?0V}A &4 gf2.“sprite31   (x!n0d8h8\RFrp(Wz90,vҬj c>Gvvn!Q|"dᙫh%3d(`sprite35  xV-R@ ^f$7<(x4 G\BӦI6-tg%e73ݝ^v]w9|' ]H[Rnڈp?QC<`ڇsO *:sAk*1:ݟj6D-#r o2N,_qLkF謎s͟yi~U&:+KSĕG٘+%?Ύľ=ߟZ藜Ws׵ZT0$Kxk zcQ ]OpttG;{t.sQp`~pSXw>U>/ _RK^N5S<*lZ-Wʆ5aI"`Bfw P:@5gx:&&[$K4]08oJ>8@$WzBq\IV>\L'?pH-֝oCasprite38  9x-0G 8Ad A!;c8H22lHlO[̦Җ_+/lNSN Tb1 +EB8-*잵,M3UrYm]ilY?ʌ?G/U?* 0Ń, pq~)M"m%63=\@ǝqb1f%@7 wkKL>OSPOKz >_oa'>ϏV) A[hl,SVN9 #|)sprite39  xݖ; D{'oOAX lE򆉘>Wt}c/f <+kgy2c\b#[".aqA&_޴PCᅅ̓+1ijW~~PiEO.883>`~/OARAdi튝Ϲ " xՖ= q{'o0H@2| yag3%^"%Y<*-IRKᲩF._ޕ$$ Ǧ9{@T_I0Ź ??p;pp'5v{ ߤ;oP x͖1 Eq{'o1(RCN$S6]7;k5:I8K=#M7 465" /Wt}c/f <+kgy2c\b#[".aqA&_޴PCᅅ̓+1ijW~~PiEO.883>`~/OARAdi튝Ϲ " xՖ= q{'o0H@2| yag3%^"%Y<*-IRKᲩF._ޕ$$ Ǧ9{@T_I0Ź ??p;pp'5v{ ߤ;oP x͖1 Eq{'o1(RCN$S6]7;k5:I8K=#M7 465" /Wt}c/f <+kgy2c\b#[".aqA&_޴PCᅅ̓+1ijW~~PiEO.883>`~/OARAdi튝Ϲ " xՖ= q{'o0H@2| yag3%^"%Y<*-IRKᲩF._ޕ$$ Ǧ9{@T_I0Ź ??p;pp'5v{ ߤ;oP x͖1 Eq{'o1(RCN$S6]7;k5:I8K=#M7 465" /n!Q|"dᙫh%3d(`sprite43  %x;0 93bN&B#~뾭]v[CBYobqmbAfbUZ=dfh-^ E:=-YhW ApD$[/5I.GQ" e{yeBmftď|$8^w>3g*i: ݡ:TWLw NFagȝ8&"H[Էނ. K;۪jubYH >Qϋ5c2Sh_کsprite44  xA E˞uމq3/ԝ`!~I>>6N52oC6 jǑB')1ᲒKRpX I?(^ē*15 |q`EHR򭐋$T{%dWꍢ·p࣒|)%EzPpDыm sprite46  Qxs5cf3 b(fdH@QG GK8" "Y _wA  E]sprite47  xՖ= qٸ{'o_Dl˃FmZT@-bĖؽfiX+sHX( seHxJ$yd8% ]vzlG/%^Xo> 4!@?z_jZ]5K`]tsprite48  x1 t:v 2Am#Zb)[8&ujsprite49   (x!n0d8h8\RFrp(Wz90,vҬj c>Gvvn!Q|"dᙫh%3d(`sprite51  x=! c,-=֎wܰPih<˙>k'lw.T>Q!3o(!i'Q40%?*AHA~)G)hؑJ4-a[}: `OSʤKK]+< 1ZE|̳+}Ffl%ldRoM]O#^ipVVibsprite52   xs5cc3 b bF T8:""Qvi6uM G|9VSKFΙ7hUۻoZ*i^ػm/ als(ZA &ys?0V}A &4 gf2.“sprite53  xՖ= qٸ{'o_Dl˃FmZT@-bĖؽfiX+sHX( seHxJ$yd8% ]vzlG/%^Xo> 4!@?z_jZ]5K`]tglobal_animation_options/*Ce script s execute quand le joueur appuie sur global options*/ var change,clic; change=0;// Cette variable designe si il y a un changement dans les global.name clic=0; //Cette variable contient le nombre de steps depuis quand la souris est cliquee et vaut donc 1 lors du clic draw_set_valign(fa_top) do { draw_rectangle_color(30,30,room_width-30,room_height-30,c_gray,c_gray,c_gray,c_gray,0) set_automatic_draw(0) change=0 for(i=1;i<=global.nombre_options;i+=1) { draw_text(100,60+i*20,global.name[i]) if variable_global_get(global.name[i])=1 draw_rectangle_color(500,60+i*20,520,75+i*20,c_green,c_green,c_green,c_green,0) else draw_rectangle_color(500,60+i*20,520,75+i*20,c_red,c_red,c_red,c_red,0) } draw_rectangle_color(500,380,540,400,c_blue,c_blue,c_blue,c_blue,0) while!(mouse_x>500&&mouse_x<540&&mouse_y>380&&mouse_y<400&&clic=1) { screen_refresh() if mouse_check_button(mb_left) clic+=1 else clic=0 io_handle() if mouse_x>500 && mouse_x<520 && mouse_y<360 && mouse_y>80 && clic=1 && mouse_y mod 20 <15 { i=floor((mouse_y-60)/20) variable_global_set(global.name[i],1-variable_global_get(global.name[i])) change=1 } if change=1 { change=2 break } } } until(change==0) set_automatic_draw(1)obj_add/*ce script sert a ajouter un objet dans la room*/ global.nombre_objets+=1 global.idobjet[global.nombre_objets]=instance_create(room_width/2,room_height/2,objet)  initialize/*Ce script est simplement le script d initialisation,il est execute par l objet control au tout debut du jeu*/ touches() global.mode="edit" //modes: edit, record, play global.nombre_objets=0 //le nombre d'objets global.nombre_carac=15 //le nombre de variables specifiques aux objets pour la sauvegarde d animations (changeable en fonction des parametres) global.nombre_options=15 //le nombre de variables specifiques aux objets maximum (constante) global.gridid=ds_grid_create(1,1) //cree une grille qui enregistre toutes les donnees global.step=0 // frame en cours de visualisation global.obj_selected=0 //l id de l'objet selectionne global.x=448 // global.y=400 // position de depart des boutons d'options global.stepstotal=0 //le nombre de frames total global.object_num=0 global.nombre_array=100 global.nombre_instructions=5000 global.num_instr=1 global.debug_mode=0 //si le mode debug est active 1 oui 0 non global.max=0 //le maximum de temps possible global.maxi=0 global.debugvar=0 global.framenb=0 nombre_debut_debug=0 for(i=1;i<=global.nombre_instructions;i+=1) { global.temps[i]=0 global.obj[i]=0 global.commande[i]=0 global.valeur[i]=0 } global.i=0 //sert pour les boucles global.j=0 //pour les boucles for(i=0;i<=100;i+=1) global.idobjet[i]=0 global.x_util=1 global.y_util=1 global.image_angle_util=1 global.speed_util=1 global.direction_util=1 global.angle_speed_util=1 global.gravity_util=1 global.gravity_direction_util=1 global.friction_util=1 global.image_scale_util=1 global.image_scale_chang_util=1 global.depth_util=1 global.image_alph_util=1 global.image_alph_chang_util=1 global.name[1]="x_util" global.name[2]="y_util" global.name[3]="image_angle_util" global.name[4]="speed_util" global.name[5]="direction_util" global.name[6]="angle_speed_util" global.name[7]="gravity_util" global.name[8]="gravity_direction_util" global.name[9]="friction_util" global.name[10]="image_scale_util" global.name[11]="image_scale_chang_util" global.name[12]="depth_util" global.name[13]="image_alph_util" global.name[14]="image_alph_chang_util" global.nom[1]="x" global.nom[2]="y" global.nom[3]="image_ang" global.nom[4]="vitesse" global.nom[5]="direc" global.nom[6]="angle_change" global.nom[7]="gravite" global.nom[8]="gravite_dir" global.nom[9]="fric" global.nom[10]="scale" global.nom[11]="scale_chang" global.nom[12]="profondeur" global.nom[13]="alpha" global.nom[14]="alpha_chang" global.nom[15]="spr_ind" /* image_ang=0 //equivalent de image_angle vitesse=0 //equivalent de speed direc=0 //equivalent de direction angle_change=0 // change l angle gravite=0 //equivalent de la gravity gravite_dir=0 //equivalent de gravity_direction fric=0 // la friction scale=0 // equivalent de image_scale scale_chang=0 // le changement de image_scale profondeur=0 // la depth */ // nombre de steps ecoules /* Variables globales qui sont specifiques a l animation entiere x_util : si la variable x est utilisee dans la sauvegarde y_util : si la variable y est utilisee dans la sauvegarde image_angle_util : si la variable image_angle est utilisee dans la sauvegarde speed_util : si la variable speed est utilisee dans la sauvegarde direction_util : si la variable direction est utilisee dans la sauvegarde angle_speed_util : si la variable angle_speed est utilisee dans la sauvegarde gravity_util : si la variable gravity est utilisee dans la sauvegarde gravity_direction_util : si la variable gravity_direction est utilisee dans la sauvegarde friction_util : si la variable friction est utilisee dans la sauvegarde image_scale_util : si la variable image_scale est utilisee dans la sauvegarde depth_util : si la variable depth est utilisee dans la sauvegarde Variables servant pour la sauvegarde des animations (specifiques a chaque objet) x : position x y : position y image_angle : rotation de l image speed : vitesse direction : direction angle_speed : vitesse de rotation de l'image gravity : gravite gravity_direction : direction de la gravite friction : friction image_scale : definira l'agrandissement de l image. depth : profondeur */  draw_selected; /*Ce script dessine toutes les variables specifiques a chaque objet pendant la selection. Il teste aussi si le joueur clique sur un des rectangles imaginaires*/ if global.obj_selected!=0 { draw_rectangle_color(30+global.x-448-30,416+global.y-432,440+global.x-448-30,480+global.y-432,c_gray,c_gray,c_gray,c_gray,0) draw_text(40+global.x-448-30,418+global.y-432,"x :"+string(global.obj_selected.x)) draw_text(40+global.x-448-30,432+global.y-432,"y :"+string(global.obj_selected.y)) draw_text(40+global.x-448-30,446+global.y-432,"i_ang :"+string(global.obj_selected.image_ang)) draw_text(120+global.x-448-30,418+global.y-432,"vit :"+string(global.obj_selected.vitesse)) draw_text(120+global.x-448-30,432+global.y-432,"dir :"+string(global.obj_selected.direc)) draw_text(120+global.x-448-30,446+global.y-432,"ang_ch :"+string(global.obj_selected.angle_change)) draw_text(200+global.x-448-30,418+global.y-432,"grav :"+string(global.obj_selected.gravite)) draw_text(200+global.x-448-30,432+global.y-432,"grav_dir :"+string(global.obj_selected.gravite_dir)) draw_text(200+global.x-448-30,446+global.y-432,"friction :"+string(global.obj_selected.fric)) draw_text(280+global.x-448-30,418+global.y-432,"scale :"+string(global.obj_selected.scale)) draw_text(280+global.x-448-30,432+global.y-432,"sc_cha :"+string(global.obj_selected.scale_chang)) draw_text(280+global.x-448-30,446+global.y-432,"depth :"+string(global.obj_selected.profondeur)) draw_text(360+global.x-448-30,416+global.y-432,"alpha :"+string(global.obj_selected.alpha)) draw_text(360+global.x-448-30,432+global.y-432,"alph_ch :"+string(global.obj_selected.alpha_chang)) draw_sprite(sprite_ch,0,360+global.x-478,455+global.y-432) if mouse_x>40+global.x-448-30 && mouse_x<440+global.x-448-30 && mouse_y>418+global.y-432-30 && mouse_y<460+global.y-432 && mouse_check_button_pressed(mb_left) { global.i=floor((mouse_x-global.x+448-40+30)/80) global.j=floor((mouse_y-global.y+432-404)/14); if global.i*3+global.j<=14 with(global.obj_selected) { variable_local_set(global.nom[global.i*3+global.j],real(get_string(global.nom[global.i*3+global.j],0))); } } if mouse_x>360+global.x-478 && mouse_x<360+global.x-478+16 && mouse_y>455+global.y-432 && mouse_y<455+global.y-432+16 { //draw_sprite(sprite_ch,0,360+global.x-478,455+global.y-432) if mouse_check_button_pressed(mb_left) with(global.obj_selected) variable_local_set(global.nom[15],choose_sprite()) } /* image_ang=0 //equivalent de image_angle vitesse=0 //equivalent de speed direc=0 //equivalent de direction angle_change=0 // change l angle gravite=0 //equivalent de la gravity gravite_dir=0 //equivalent de gravity_direction fric=0 // la friction scale=0 // equivalent de image_scale scale_chang=0 // le changement de image_scale profondeur=0 // la depth */ } next_step/*Ce script se charge d ajouter un step quand l utilisateur appuie sur la fleche droite*/ if global.step==global.stepstotal { add_step() } else { change_step() } draw_debug/* Charge de dessiner en debugmode, toutes les variables d instructions*/ for(i=1+nombre_debut_debug;i<20+nombre_debut_debug;i+=1) { draw_text(50,(i-nombre_debut_debug)*20,string(i)) draw_text(100,(i-nombre_debut_debug)*20,string(global.temps[i])) draw_text(150,(i-nombre_debut_debug)*20,string(global.obj[i])) draw_text(200,(i-nombre_debut_debug)*20,string(global.commande[i])) draw_text(250,(i-nombre_debut_debug)*20,string(global.valeur[i])) } for(i=1;i<=14;i+=1) with(objet) { global.debug_var=variable_local_get(global.nom[control.i]) global.debug_var2=variable_local_get("last_"+global.nom[control.i]) with(control) { draw_text(400,50+i*20,string(global.debug_var)) draw_text(500,50+i*20,string(global.debug_var2)) } }compare/*Ce script renvoie 1 si le nombre 1 et le nombre 2 sont egals a une precision de precision et 0 si ils sont differents, en prenant aussi en compte leur signe*/ var nombre1,nombre2,precision; nombre1=argument0 nombre2=argument1 precision=argument2 if (sign(nombre1)=-1 && sign(nombre2)=1) || (sign(nombre1)=1 && sign(nombre2)=-1) return 0; if nombre1=0 && nombre2 =0 return 1; if abs(nombre1)>precision*abs(nombre2) && abs(nombre1)*precision0 { fleche_ga.numero_step=argument0 fleche_ga.l=1 fleche_ga.i=ceil((fleche_ga.numero_step)/100)-1; fleche_ga.t=(fleche_ga.numero_step mod 100)-1; if fleche_ga.t=-1 fleche_ga.t=99 //show_message(string(fleche_ga.i)+" "+string(fleche_ga.t)) if global.max<=fleche_ga.i*100 //si il n y a pas d instructions apres i*100 { //initialisation //show_message("initialisation") for(fleche_ga.k=1;fleche_ga.k<=14;fleche_ga.k+=1) with(objet) variable_local_set(global.nom[fleche_ga.k],position_object[fleche_ga.i+1,fleche_ga.k]) for(fleche_ga.k=1+fleche_ga.i*100;fleche_ga.k<=fleche_ga.t+1+fleche_ga.i*100;fleche_ga.k+=1) { with(objet) { step_objet() } } } if global.max>fleche_ga.i*100 { //show_message(string(fleche_ga.numero_step)) for(fleche_ga.k=1;fleche_ga.k<=14;fleche_ga.k+=1) with(objet) variable_local_set(global.nom[fleche_ga.k],position_object[fleche_ga.i+1,fleche_ga.k]) fleche_ga.l=1 while(1) { if global.temps[fleche_ga.l]>fleche_ga.i*100 break; else fleche_ga.l+=1 } for(fleche_ga.k=fleche_ga.i*100+1;fleche_ga.k<=fleche_ga.t+1+fleche_ga.i*100;fleche_ga.k+=1) { with(objet) { while global.temps[fleche_ga.l]=fleche_ga.k && global.obj[fleche_ga.l]=obj_number { fleche_ga.a=global.commande[fleche_ga.l] fleche_ga.b=global.valeur[fleche_ga.l] variable_local_set(global.nom[fleche_ga.a],fleche_ga.b) //show_message(string(fleche_ga.a)+" "+string(fleche_ga.b)+" "+string(global.obj[fleche_ga.l])) fleche_ga.l+=1 } step_objet() } } } global.step=fleche_ga.numero_step } with(objet) for(fleche_ga.i=1;fleche_ga.i<=global.nombre_options;fleche_ga.i+=1) variable_local_set("last_"+global.nom[fleche_ga.i],variable_local_get(global.nom[fleche_ga.i]))  step_objet9x=x+cos(degtorad(direc))*vitesse y=y-sin(degtorad(direc))*vitesse image_ang+=angle_change //equivalent de image_angle if gravite!=0 { vit_x=cos(degtorad(direc))*vitesse vit_y=-sin(degtorad(direc))*vitesse grav_x=cos(degtorad(gravite_dir))*gravite grav_y=-sin(degtorad(gravite_dir))*gravite vit_x+=grav_x vit_y+=grav_y vitesse=sqrt(sqr(vit_x)+sqr(vit_y)) direc=point_direction(0,0,vit_x,vit_y) } if fric!=0 { vitesse-=fric if vitesse<0 { vitesse=0 fric=0 } } scale+=scale_chang // equivalent de image_scale alpha+=alpha_changadd_step global.stepstotal+=1; //le nombre de frames total global.step=global.stepstotal; global.obj_num=0; if global.step mod 100 == 1 { //sauvegarde de toutes les donnees toutes les 100 entrees with(objet) { step_objet() for(i=1;i<=global.nombre_options;i+=1) variable_local_array2_set("position_object",ceil(global.step/100),i,variable_local_get(global.nom[i])); } } else { //reactualise les positions des objets with(objet) { if gravite!=0 { vit_x=cos(degtorad(direc))*vitesse vit_y=-sin(degtorad(direc))*vitesse grav_x=cos(degtorad(gravite_dir))*gravite grav_y=-sin(degtorad(gravite_dir))*gravite vit_x-=grav_x vit_y-=grav_y vitesse=sqrt(sqr(vit_x)+sqr(vit_y)) direc=point_direction(0,0,vit_x,vit_y) } if fric!=0 { vitesse+=fric if vitesse<0 vitesse=0 } x=x-cos(degtorad(direc))*vitesse y=y+sin(degtorad(direc))*vitesse image_ang-=angle_change //equivalent de image_angle scale-=scale_chang // equivalent de image_scale alpha-=alpha_chang } with(objet) { for (i=1;i<=global.nombre_options;i+=1) if compare(variable_local_get(global.nom[i]),variable_local_get("last_"+global.nom[i]),0.99)==0 { //show_message(global.nom[i]+" "+string(variable_local_get(global.nom[i]))+string(variable_local_get("last_"+global.nom[i]))) global.temps[global.num_instr]=global.step global.max=global.step global.obj[global.num_instr]=obj_number global.commande[global.num_instr]=i global.valeur[global.num_instr]=variable_local_get(global.nom[i]) global.num_instr+=1 } } with(objet) { step_objet() } with(objet) { for(i=1;i<=global.nombre_options;i+=1) variable_local_set("last_"+global.nom[i],variable_local_get(global.nom[i])) } //reactualise les positions des objets with(objet) { step_objet() } for(i=1;i<=global.nombre_options;i+=1) variable_local_set("deb_"+global.nom[i],variable_local_get(global.nom[i])) }  change_stepR fleche_ga.a=0 fleche_ga.b=0 step_sci_last() for(i=1;i<=global.nombre_options;i+=1) with(objet) if variable_local_get("last_"+global.nom[fleche_dr.i])!=variable_local_get(global.nom[fleche_dr.i]) fleche_ga.a+=1 if fleche_ga.a=0 { step_sci(global.step+1) } else { //l'utilisateur a change quelquechose show_message("Vous avez changes qqchose") changing_step() } with(objet) { for(i=1;i<=global.nombre_options;i+=1) variable_local_set("last_"+global.nom[i],variable_local_get(global.nom[i])) }  changing_step if global.max>global.step { //show_message("global.max>global.step") fleche_ga.l=1 while(1) { if global.temps[fleche_ga.l]=global.step { //delete_frame() //global.step+=1 break; } else if global.temps[fleche_ga.l]>global.step break; else fleche_ga.l+=1 } //show_message("nombrel"+string(fleche_ga.l)) fleche_ga.i=fleche_ga.l fleche_ga.b=0 while(global.temps[fleche_ga.l]=global.step) { //show_message(" marche") fleche_ga.b+=1 fleche_ga.l+=1 } //show_message(string(fleche_ga.i)+" "+string(fleche_ga.l)+" "+string(global.step)) for(fleche_ga.a=fleche_ga.i;fleche_ga.aglobal.step-1 { fleche_ga.l=1 if exist_frame()=1 { show_message("BIG ERREUR") fleche_ga.l=1 while(1) { if global.temps[fleche_ga.l]=global.step-1 || global.temps[fleche_ga.l]>global.step-1 || global.temps[fleche_ga.l]>global.num_instr break; else fleche_ga.l+=1 } //show_message("nombrel"+string(fleche_ga.l)) } else { fleche_ga.l=1 while(1) { if global.temps[fleche_ga.l]=global.step || global.temps[fleche_ga.l]>global.step || global.temps[fleche_ga.l]>global.num_instr break; else fleche_ga.l+=1 } // show_message("nombrel"+string(fleche_ga.l)) } } else fleche_ga.l=global.num_instr fleche_ga.l=1 while(1) { if global.temps[fleche_ga.l]=global.step || global.temps[fleche_ga.l]>global.step || fleche_ga.l>=global.num_instr break; else fleche_ga.l+=1 } fleche_ga.b=0 for(fleche_ga.a=1;fleche_ga.a<=global.nombre_options;fleche_ga.a+=1) with(objet) if variable_local_get("last_"+global.nom[fleche_ga.a])!=variable_local_get(global.nom[fleche_ga.a]) fleche_ga.b+=1//le nombre de changements global.num_instr+=fleche_ga.b //show_message("fleche.b"+string(fleche_ga.b)) show_message("flech.l:"+string(fleche_ga.l)) //show_message("num_instr:"+string(global.num_instr)) for (fleche_ga.a=global.num_instr;fleche_ga.a>=fleche_ga.l;fleche_ga.a-=1) { global.temps[fleche_ga.a+fleche_ga.b]=global.temps[fleche_ga.a] global.obj[fleche_ga.a+fleche_ga.b]=global.obj[fleche_ga.a] global.commande[fleche_ga.a+fleche_ga.b]=global.commande[fleche_ga.a] global.valeur[fleche_ga.a+fleche_ga.b]=global.valeur[fleche_ga.a] } for(fleche_ga.a=fleche_ga.l;fleche_ga.a0 { fleche_ga.numero_step=argument0 fleche_ga.l=1 fleche_ga.i=floor(fleche_ga.numero_step/100); fleche_ga.t=(fleche_ga.numero_step mod 100)-1; if fleche_ga.t=-1 fleche_ga.t=99 //show_message(string(fleche_ga.i)+" "+string(fleche_ga.t)) if global.max<=fleche_ga.i*100 //si il n y a pas d instructions apres i*100 { //initialisation for(fleche_ga.k=1;fleche_ga.k<=14;fleche_ga.k+=1) with(objet) variable_local_set("last_"+global.nom[fleche_ga.k],position_object[fleche_ga.i+1,fleche_ga.k]) for(fleche_ga.k=1+fleche_ga.i*100;fleche_ga.k<=fleche_ga.t+1+fleche_ga.i*100;fleche_ga.k+=1) { with(objet) { step_objet_last() } } } if global.max>fleche_ga.i*100 { fleche_ga.t=(fleche_ga.numero_step mod 100)-1; //show_message(string(fleche_ga.numero_step)) for(fleche_ga.k=1;fleche_ga.k<=14;fleche_ga.k+=1) with(objet) variable_local_set("last_"+global.nom[fleche_ga.k],position_object[fleche_ga.i+1,fleche_ga.k]) while(1) { if global.temps[fleche_ga.l]>fleche_ga.i*100 break; else fleche_ga.l+=1 } //show_message(string(fleche_ga.l)) for(fleche_ga.k=fleche_ga.i*100+1;fleche_ga.k<=fleche_ga.t+1+fleche_ga.i*100;fleche_ga.k+=1) { with(objet) { while global.temps[fleche_ga.l]=fleche_ga.k && global.obj[fleche_ga.l]=obj_number { fleche_ga.a=global.commande[fleche_ga.l] fleche_ga.b=global.valeur[fleche_ga.l] variable_local_set("last_"+global.nom[fleche_ga.a],fleche_ga.b) //show_message(string(fleche_ga.a)+" "+string(fleche_ga.b)+" "+string(global.obj[fleche_ga.l])) fleche_ga.l+=1 } step_objet_last() } } } } /*with(objet) for(fleche_ga.i=1;fleche_ga.i<=global.nombre_options;fleche_ga.i+=1) variable_local_set("last_"+global.nom[fleche_ga.i],variable_local_get(global.nom[fleche_ga.i])) */ set_mode_playglobal.mode="play" framenb=1 set_mode_editglobal.mode="edit"  delete_frameif global.step!=0 && global.step!=2 { fleche_ga.a=global.step fleche_ga.l=1 { //show_message("detruit") while(1) { if global.temps[fleche_ga.l]=global.step || global.temps[fleche_ga.l]>global.step break; else fleche_ga.l+=1//debut if fleche_ga.l>global.num_instr break; } } fleche_ga.b=0 while(global.temps[fleche_ga.l+fleche_ga.b]=global.step) { fleche_ga.b+=1//nombre total a supprimer } //show_message(string(fleche_ga.l)+"detruit"+string(fleche_ga.b)) for (fleche_ga.a=fleche_ga.l;fleche_ga.a<=global.num_instr;fleche_ga.a+=1) { global.temps[fleche_ga.a]=global.temps[fleche_ga.a+fleche_ga.b] global.obj[fleche_ga.a]=global.obj[fleche_ga.a+fleche_ga.b] global.commande[fleche_ga.a]=global.commande[fleche_ga.a+fleche_ga.b] global.valeur[fleche_ga.a]=global.valeur[fleche_ga.a+fleche_ga.b] } global.num_instr-=fleche_ga.b step_sci(global.step-1) }touchesglobal.droite=vk_right //pour aller au frame precedent global.gauche=vk_left//pour aller au frame suivant global.megadroite=vk_down//pour aller au dernier frame global.megagauche=vk_up//pour aller au premier frame save_fileLvar textid; textid=file_text_open_write(argument0) file_text_close(textid) exist_frameif global.max>global.step { fleche_ga.l=1 while(1) { if global.temps[fleche_ga.l]=global.step return 1; else fleche_ga.l+=1 if fleche_ga.l>global.num_instr return 0; } } else return 0; choose_spriteY set_automatic_draw(0) var m_x,m_y,num_sprite,steps_mouse,key_left,key_right,debut; m_x=0 m_y=0 num_sprite=0 steps_mouse=0 key_left=0 key_right=0 debut=0 while(1) { //show_message("test") draw_rectangle_color(30,30,room_width-30,room_height-30,c_gray,c_gray,c_gray,c_gray,0) for (i=1;i<10;i+=1) { if debut+i<=global.nb_sprite { draw_sprite_stretched(global.numero_spr[debut+i],0,70,40+i*32,32,32) draw_text(110,40+i*32,string_copy((global.nom_sprite[debut+i]),0,3)) } } for (i=1;i<10;i+=1) { if debut+i+10<=global.nb_sprite { draw_sprite_stretched(global.numero_spr[debut+i+10],0,150,40+i*32,32,32) draw_text(190,40+i*32,string_copy((global.nom_sprite[debut+i+10]),0,3)) } } for (i=1;i<10;i+=1) { if debut+i+20<=global.nb_sprite { draw_sprite_stretched(global.numero_spr[debut+i+20],0,230,40+i*32,32,32) draw_text(270,40+i*32,string_copy((global.nom_sprite[debut+i+20]),0,3)) } } for (i=1;i<10;i+=1) { if debut+i+30<=global.nb_sprite { draw_sprite_stretched(global.numero_spr[debut+i+30],0,310,40+i*32,32,32) draw_text(350,40+i*32,string_copy((global.nom_sprite[debut+i+30]),0,3)) } } for (i=1;i<10;i+=1) { if debut+i+40<=global.nb_sprite { draw_sprite_stretched(global.numero_spr[debut+i+40],0,390,40+i*32,32,32) draw_text(430,40+i*32,string_copy((global.nom_sprite[debut+i+40]),0,3)) } } for (i=1;i<10;i+=1) { if debut+i+50<=global.nb_sprite { draw_sprite_stretched(global.numero_spr[debut+i+50],0,470,40+i*32,32,32) draw_text(510,40+i*32,string_copy((global.nom_sprite[debut+i+50]),0,3)) } } for (i=1;i<10;i+=1) { if debut+i+60<=global.nb_sprite { draw_sprite_stretched(global.numero_spr[debut+i+50],0,470,40+i*32,32,32) draw_text(510,40+i*32,string_copy((global.nom_sprite[debut+i+50]),0,3)) } } io_handle() if mouse_x>70 && mouse_x<550 && mouse_y>72 && mouse_y<360 { m_x= floor((mouse_x+10)/80)-1 m_y= floor((mouse_y-40)/32) num_sprite=m_x*10+m_y+debut //show_message(string(num_sprite)) if num_sprite<=global.nb_sprite && num_sprite>0 { draw_sprite_stretched(global.numero_spr[num_sprite],0,40,370,70,70) draw_text(130,405,global.nom_sprite[num_sprite]) if steps_mouse=1 { set_automatic_draw(1); return num_sprite-1; } } } if key_left=1 && debut>=10 debut-=10 if key_right=1 debut+=10 if keyboard_check(vk_space) { set_automatic_draw(1); return 0; } if keyboard_check(vk_left) key_left+=1 else key_left=0 if keyboard_check(vk_right) key_right+=1 else key_right=0 if mouse_check_button(mb_left) steps_mouse+=1 if !mouse_check_button(mb_left) steps_mouse=0 screen_refresh() }  load_spritesj=0 debut=0 for(i=0;i<=3000;i+=1) { if sprite_exists(i) { j+=1 global.nom_sprite[j]=sprite_get_name(i) global.numero_spr[j]=i } } global.nb_sprite=j for(i=j;i40+global.x-448-30 && mouse_x<650+global.x-448-30 && mouse_y>418+global.y-432 && mouse_y<470+global.y-432) global.obj_selected=0 0000000m[.if nombre_debut_debug>0 nombre_debut_debug-=10000000k[nombre_debut_debug+=100000003[cif global.obj_selected!=0 { (global.obj_selected).x=mouse_x; (global.obj_selected).y=mouse_y; }0000000[if !collision_rectangle(30+global.x-448-30,416+global.y-432,440+global.x-448-30,480+global.y-432,objet,1,0) draw_selected() draw_text(global.x+66,global.y+45,string(global.step)+"/"+string(global.stepstotal)) if global.debug_mode=1 draw_debug()0000000y[Fif global.debug_mode=0 global.debug_mode=1 else global.debug_mode=00000000objet [ximage_ang=0 //equivalent de image_angle vitesse=0 //equivalent de speed direc=0 //equivalent de direction angle_change=0 // change l angle gravite=0 //equivalent de la gravity gravite_dir=0 //equivalent de gravity_direction fric=0 // la friction scale=1 // equivalent de image_scale scale_chang=0 // le changement de image_scale profondeur=0 // la depth alpha=1 // l alpha alpha_chang=0 //le changement d alpha spr_ind=sprite_index deb_image_ang=0 //equivalent de image_angle deb_vitesse=0 //equivalent de speed deb_direc=0 //equivalent de direction deb_angle_change=0 // change l angle deb_gravite=0 //equivalent de la gravity deb_gravite_dir=0 //equivalent de gravity_direction deb_fric=0 // la friction deb_scale=1 // equivalent de image_scale deb_scale_chang=0 // le changement de image_scale deb_profondeur=0 // la depth deb_alpha=1 deb_alpha_chang=0 deb_select=0 deb_spr_ind=sprite_index select=0 vit_x=0 vit_y=0 grav_x=0 grav_y=0 last_x=0 last_y=0 last_image_ang=0 //equivalent de image_angle last_vitesse=0 //equivalent de speed last_direc=0 //equivalent de direction last_angle_change=0 // change l angle last_gravite=0 //equivalent de la gravity last_gravite_dir=0 //equivalent de gravity_direction last_fric=0 // la friction last_scale=1 // equivalent de image_scale last_scale_chang=0 // le changement de image_scale last_profondeur=0 // la depth last_alpha=1 last_alpha_chang=0 last_select=0 last_spr_ind=sprite_index obj_number=global.nombre_objets time=30 for(i=1;i<=global.nombre_array;i+=1) { for(j=1;j<=global.nombre_options;j+=1) { position_object[i,j]=0 } } 0000000[if select=1 { global.obj_selected=id if time<0 { x=mouse_x y=mouse_y } } image_angle=image_ang image_xscale=scale image_yscale=scale image_alpha=alpha depth=profondeur sprite_index=spr_ind if mouse_check_button_released(mb_left) && !(mouse_x>360+global.x-478 && mouse_x<360+global.x-478+16 && mouse_y>455+global.y-432 && mouse_y<455+global.y-432+16 ) { select=0 time=30 } 00000008[00000002[time-=10000000[Hif global.obj_selected=0 { global.obj_selected=id select=1 time=5 }0000000 [xfor(i=1;i<=global.nombre_options;i+=1) { variable_local_set(global.nom[i],variable_local_get("deb_"+global.nom[i])) }0000000 object_add [0000000[x=global.x y=global.y0000000[ if !collision_rectangle(x,y,x+sprite_width,y+sprite_height,objet,1,0) if mouse_x>x && mouse_xy && mouse_yx && mouse_xy && mouse_yx && mouse_xy && mouse_yx && mouse_xy && mouse_yx && mouse_xy && mouse_yx && mouse_xy && mouse_y 60 && time mod 8=0 step_sci(global.step-1) if time<60 && time > 30 && time mod 4=0 step_sci(global.step-1) if time<30 && time> 0 && abs(time)mod 2=0 step_sci(global.step-1) if time<0 && time> -30 step_sci(global.step-1) if time<-30 repeat(4) step_sci(global.step-1) } draw_sprite(sprite_index,image_single,x,y)0000000 fleche_dr [)time=100 info="passer au prochain frame"0000000[+x=global.x+2*sprite_width-64 y=global.y+450000000[if !collision_rectangle(x,y,x+sprite_width,y+sprite_height,objet,1,0) if (mouse_x>x && mouse_xy && mouse_yx && mouse_xy && mouse_y 60 && time mod 8=0 next_step() if time<60 && time > 30 && time mod 4=0 next_step() if time<30 && time> 0 && abs(time)mod 2=0 next_step() if time<0 && time> -30 next_step() if time<-30 repeat(4) next_step() } draw_sprite(sprite_index,image_single,x,y)0000000 fleche_megg [Tnumero_step=0 time=100 a=0 b=0 i=0 t=0 k=0 l=0 info="aller au premier frame"0000000[x=global.x-64 y=global.y+450000000[if !collision_rectangle(x,y,x+sprite_width,y+sprite_height,objet,1,0) if (mouse_x>x && mouse_xy && mouse_yx && mouse_xy && mouse_y 60 && time mod 8=0 step_sci(1) if time<60 && time > 30 && time mod 4=0 step_sci(1) if time<30 && time> 0 && abs(time)mod 2=0 step_sci(1) if time<0 && time> -30 step_sci(1) if time<-30 repeat(4) step_sci(1) } draw_sprite(sprite_index,image_single,x,y)0000000 fleche_megd  [Tnumero_step=0 time=100 a=0 b=0 i=0 t=0 k=0 l=0 info="aller au dernier frame"0000000[+x=global.x+3*sprite_width-64 y=global.y+450000000[if !collision_rectangle(x,y,x+sprite_width,y+sprite_height,objet,1,0) if (mouse_x>x && mouse_xy && mouse_yx && mouse_xy && mouse_y 60 && time mod 8=0 step_sci(global.stepstotal) if time<60 && time > 30 && time mod 4=0 step_sci(global.stepstotal) if time<30 && time> 0 && abs(time)mod 2=0 step_sci(global.stepstotal) if time<0 && time> -30 step_sci(global.stepstotal) if time<-30 repeat(4) step_sci(global.stepstotal) } draw_sprite(sprite_index,image_single,x,y)0000000play_obj  [.time=100 framenb=0 info="jouer l' animation"0000000[x=global.x+4*sprite_width y=global.y+45 if global.mode="play" { if framenb>global.stepstotal { global.mode="edit" frame_nb=0 break; } if framenb=1 step_sci(1) else { step_sci(framenb) } framenb+=1 } 0000000[oif !collision_rectangle(x,y,x+sprite_width,y+sprite_height,objet,1,0) if mouse_x>x && mouse_xy && mouse_yx && mouse_xy && mouse_yx && mouse_xy && mouse_y