AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment :
LEGO Icons 10331 – Le martin-pêcheur
Voir le deal
35 €

 

 Problème inexplicable [Resolu par caohimin]

Aller en bas 
2 participants
AuteurMessage
Caohimin
Très bonne participation
Caohimin


Messages : 134
Localisation : Au coeur de cette charmante demoiselle.

Problème inexplicable [Resolu par caohimin] Empty
MessageSujet: Problème inexplicable [Resolu par caohimin]   Problème inexplicable [Resolu par caohimin] EmptySam 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
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****
D-z


Messages : 1611
Localisation : Montpellier

Problème inexplicable [Resolu par caohimin] Empty
MessageSujet: Re: Problème inexplicable [Resolu par caohimin]   Problème inexplicable [Resolu par caohimin] EmptySam 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.
Revenir en haut Aller en bas
Caohimin
Très bonne participation
Caohimin


Messages : 134
Localisation : Au coeur de cette charmante demoiselle.

Problème inexplicable [Resolu par caohimin] Empty
MessageSujet: Re: Problème inexplicable [Resolu par caohimin]   Problème inexplicable [Resolu par caohimin] EmptySam 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...
Revenir en haut Aller en bas
Contenu sponsorisé





Problème inexplicable [Resolu par caohimin] Empty
MessageSujet: Re: Problème inexplicable [Resolu par caohimin]   Problème inexplicable [Resolu par caohimin] Empty

Revenir en haut Aller en bas
 
Problème inexplicable [Resolu par caohimin]
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» *probleme inexplicable en 3 mots*
» problème avec gravité [résolu] - problème avec mouvements
» [Résolu] probleme id
» problème IA [Résolu]
» [résolu] Problème d'I.A.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: