Innoson Utilisateur confirmé: Rang ****
Messages : 927 Projet Actuel : Aller voir la bas si jy suis.
| Sujet: platforme, mouvement Sam 17 Fév 2007 - 13:40 | |
| mon problème est TRES simple : j'ai un block qui se déplace, horizontalement par exemple, dans sont create event il s'initialise et dans un script, un argument dis quelle objet doit se déplacer lorsque il le touche (cette objet le suit bien normalement) le probl_ème sé que y a plein d'objets de personnages qui devré se déplacer a sont contact Et si je met un objet parent, tous ls objet a ppartenant a sa parent se déplace en même temp, sa ne vas pas il y a le même problème pour les block qui sont travérsable que d'un coté : il devient solid quand un objet est dessus, du coup si d'autre veulent passer a travère dans le sens inverse sa marche pas... il s'initialise est ajoute le script "step_lateformeblock" dans leur step event:voila pour tous les block sé pareil dans create event il ont scomme script : //Arg0: déplacement : false = aucun 1 = honrizontales 2 = verticales //Arg1: vitesse de déplacement //Arg2: pacer un travère un coté (true = activer false = non) //Arg3: direction pour passer a travère(0=droite,1=haut,2=gauche,3=bas) //Arg4: objet qui passe a travèrehsp=0; vsp=0; if argument0=1 {hsp= argument1;vsp=0; } if argument0=2 {hsp=0;vsp= argument1; }track= argument2; trackdir= argument3; obj= argument4; object_event_clear(object_index,ev_step,ev_step_begin); object_event_add(object_index,ev_step,ev_step_begin[color:1826=#000000:1826],"step_platformblock()");
voila se qui a dans le script "step_platformblock"
var i; i= false; if instance_place( x, y-1,obj) {i= true} if track and trackdir=0 {if x+ sprite_width<=obj. x-obj. sprite_yoffset{solid= true; }else{solid= false; } } if track and trackdir=1 {if y>=obj. y-obj. sprite_yoffset+obj. sprite_height-1 {solid= true; }else{solid= false; } } if track and trackdir=2 {if x>=obj. x-obj. sprite_xoffset+obj. sprite_width-1 {solid= true; }else{solid= false; } } if track and trackdir=3 {if y+ sprite_height<=obj. y-obj. sprite_yoffset{solid= true; }else{solid= false; } } if hsp>0 {repeat hsp {if place_free( x+1, y) {x+=1; if place_free(obj. x+1,obj. y) and i {obj. x+=1; }}else{hsp=-hsp; break; }} } if hsp<0 {repeat -hsp {if place_free( x-1, y) {x-=1; if place_free(obj. x-1,obj. y) and i {obj. x-=1; }}else{hsp=-hsp; break; }} } if vsp>0 {repeat vsp {if place_free( x, y+1) {y+=1; if place_free(obj. x,obj. y+1) and i {obj. y+=1; }}else{vsp=-vsp; break; }} } if vsp<0 {repeat -vsp {if place_free( x, y-1) {y-=1; if place_free(obj. x,obj. y-1) and i {obj. y-=1; }if ! place_free(obj. x,obj. y-1) and i {vsp=-vsp; exit}}else{vsp=-vsp; break; }} } |
|
Innoson Utilisateur confirmé: Rang ****
Messages : 927 Projet Actuel : Aller voir la bas si jy suis.
| Sujet: Re: platforme, mouvement Sam 17 Fév 2007 - 13:42 | |
| script inspirer de l'ack ack engine Mercie de vôtre aide |
|