Caohimin Très bonne participation
Messages : 134 Localisation : Au coeur de cette charmante demoiselle.
| Sujet: Problème inexplicable [Resolu par caohimin] Sam 3 Mar 2012 - 17:20 | |
| Bonjour, Etrangement la fonction : - Code:
-
point_direction(x,y,xprevious,yprevious) Me retourne toujours 0, alors que : - Code:
-
show_message("X = "+string(x)+" Y = "+string(y)+" Xprevious = "+string(xprevious)+" Yprevious = "+string(yprevious)) Me retourne des valeur différente. Voila le script en question : - Code:
-
/* 0 1 2 3 4 5 6 7 8 9 10 11 *ARM_arme( arme , munition , cadence , vitesse , nbr , precision , viser , longueur_canon , longueur_feu , frottement , mode , nbr_rafale ) * * *0 arme = objet de l'arme *1 munition = objet de la munition *2 cadence = nombre de step entre 2 tir *3 vitesse = la vitesse *4 nbr = le nombre de balles par tir *5 precision = la precision des balles tirer *6 viser = deviation des balles pendant long tir *7 longueur_canon = longueur du canon (en pxl de la ou le feu demarrera) *8 longueur_feu = longueur de la flamme (en pxl de la longueur de la flamme) *9 frottement = ralitissement de la vitesse de la balle par step *10 mode = 0 : coup par coup * 1 : raffale * 2 : auto *11 nbr_rafale = nombre de balles de la rafale * * * * * */
with argument0 //avec l'arme begin
if !variable_local_exists("cadence") { cadence=0 } if !variable_local_exists("viser") { viser=0 } part_type_direction(tir,angle-(30/2),angle+(30/2),0,0)
if mouse_check_button_pressed(mb_left) && cadence<=0 //si clic souri gauche { cadence=argument2 // cadence de tir de l'arme pe_tir=part_emitter_create(ps_tir) part_emitter_region(ps_tir,pe_tir,x+(lengthdir_x(argument7,angle)),x+(lengthdir_x(argument7+argument8,angle)),y+(lengthdir_y(argument7,angle)),y+(lengthdir_y(argument7+argument8,angle)),ps_shape_line,ps_distr_linear) part_emitter_burst(ps_tir,pe_tir,tir,10) repeat(argument4) //nombre de balle tirer { with instance_create(argument0.x+(lengthdir_x(argument7,angle)),argument0.y+(lengthdir_y(argument7,angle)),argument1)//avec la ou les balle(s) { pe_trainer=part_emitter_create(argument0.ps_trainer) direction=(argument0.angle-(argument5/2)-(argument0.viser/2))+random(argument5+argument0.viser) //precision de tir speed=argument3 //vitesse de tir de la balle } } } with argument1 //avec la ou les balle(s) { if speed>argument3/3 { speed-=argument9 //frottement } if speed<argument3/2 { gravity=0.35 //gravite } angle=point_direction(x,y,xprevious,yprevious) show_message(string(point_direction(x,y,xprevious,yprevious))) part_type_orientation(argument0.trainer,point_direction(x,y,xprevious,yprevious),point_direction(x,y,xprevious,yprevious),0,0,1) part_emitter_region(argument0.ps_trainer,pe_trainer,x-5,x+5,y-5,y+5,ps_shape_rectangle,ps_distr_gaussian) //region de l'emetteur part_emitter_stream(argument0.ps_trainer,pe_trainer,argument0.trainer,1) //activiter de l'emetteur if collision_line(x,y,xprevious,yprevious,solid,0,1) || hors_view(argument1,0) //si collision, ou sorti de view { part_emitter_destroy(argument0.ps_trainer,pe_trainer) //detruire l'emetteur instance_destroy() //détruire l'instance } } if cadence>0 { cadence-=1 }
end
Le script sert a creer un arme, ou plutot les caracteristique, mais le probleme vient de la seconde partit : - Code:
-
part_type_orientation(argument0.trainer,point_direction(x,y,xprevious,yprevious),point_direction(x,y,xprevious,yprevious),0,0,1) Impossible d'avoir la particule tourner dans l'angle désirer Edit : j'ai utiliser un lenghtdir, ça fonctionne tout aussi bien.
Dernière édition par Caohimin le Dim 4 Mar 2012 - 1:53, édité 1 fois |
|
D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: Problème inexplicable [Resolu par caohimin] Sam 3 Mar 2012 - 20:38 | |
| Parce que cette fonction prend la valeur de point_direction(...) à l'instant de son exécution, pas la fonction elle-même. Il faut exécuter ça dans un Step Event. |
|
Caohimin Très bonne participation
Messages : 134 Localisation : Au coeur de cette charmante demoiselle.
| Sujet: Re: Problème inexplicable [Resolu par caohimin] Sam 3 Mar 2012 - 21:42 | |
| Elle est dans un step event, la preuve, la variable cadence se décrémente a chaque step... et j'ai beau mettre le point_direction dans une variable, et utiliser la variable a la place, nada... |
|
Contenu sponsorisé
| Sujet: Re: Problème inexplicable [Resolu par caohimin] | |
| |
|