Page 1 sur 1
variable+procedure
Publié : lun. 28/mars/2005 19:54
par eRz0r
Hello, me revoilà encore avec un problème. En fait j'ai une procédure qui calcule le déplacement de mon sprite. Cette procédure contient une variable qui est ACCESPEED.f
Code : Tout sélectionner
Procedure machin_truc()
dt=2
ACCESPEED.f=500
Route\CoefFrottement=0.015
Route\Vitesse+(Route\Acceleration*dt/ACCESPEED.f)
Route\Vitesse/(1+(Route\CoefFrottement*dt))
Route\PositionX+(Route\Vitesse*dt)
EndProcedure
Mon problème, est que j'aimerai pouvoir déplacer la variable ACCESPEED.f en dehors de la procédure, comme ceci par exemple :
Code : Tout sélectionner
ACCESPEED.f=500
Procedure machin_truc()
dt=2
Route\CoefFrottement=0.015
Route\Vitesse+(Route\Acceleration*dt/ACCESPEED.f)
Route\Vitesse/(1+(Route\CoefFrottement*dt))
Route\PositionX+(Route\Vitesse*dt)
EndProcedure
Mais le problème, est que ça ne va pas, le sprite ne fonctionne plus du tout une fois le programme lancé.
Comment faire ?
eRz
Publié : lun. 28/mars/2005 20:03
par cederavic
2 choix s'offrent à toi :
Code : Tout sélectionner
Global ACCESPEED.f
ACCESPEED =500
Procedure machin_truc()
dt=2
Route\CoefFrottement=0.015
Route\Vitesse+(Route\Acceleration*dt/ACCESPEED)
Route\Vitesse/(1+(Route\CoefFrottement*dt))
Route\PositionX+(Route\Vitesse*dt)
EndProcedure
et
Code : Tout sélectionner
Procedure machin_truc(ACCESPEED.f)
dt=2
Route\CoefFrottement=0.015
Route\Vitesse+(Route\Acceleration*dt/ACCESPEED)
Route\Vitesse/(1+(Route\CoefFrottement*dt))
Route\PositionX+(Route\Vitesse*dt)
EndProcedure
; En lançant
machin_truc(500)
Publié : lun. 28/mars/2005 20:09
par eRz0r
Erf j'avais deja testé le 2e ça marchais pas, et la je viens de restester ces 2 solutions ça fonctionne toujours pas
eRz
Publié : lun. 28/mars/2005 21:03
par Le Soldat Inconnu
pas normal, avec la variable en global, ça doit marcher sans problème.
Publié : mar. 29/mars/2005 14:02
par eRz0r
Erf c'est bon ça marche merci, en fait c'est la valeur 500, j'avais mis 1200 à la place de 1.200
eRz
Publié : mar. 29/mars/2005 14:13
par eRz0r
Autre question
Code : Tout sélectionner
Global acce_pot_debride.f
acce_pot_debride.f=0
Global acce_pot_homologue.f
acce_pot_homologue.f=0
Global acce_pot_non_homologue.f
acce_pot_non_homologue.f=0
Global ACCE_POT.f
ACCE_POT.f=acce_pot_debride.f+acce_pot_homologue.f+acce_pot_non_homologue.f
Il n'y aura pas un moyen plus court et plus propre d'écrire ça ? Car ma liste est assez longue lol.
eRz
Publié : mar. 29/mars/2005 14:34
par Le Soldat Inconnu
ben, si les valeurs ne change jamais, tu peux faire des constantes. ce sera nettement moins lourd à la fois à écrire et pour le programme en temps d'éxécution
Publié : mar. 29/mars/2005 14:44
par eRz0r
Erf le probleme c'est que les valeurs vont changés :s
Bah c'est pas grave je vais faire ça dans un fichier apart :p
eRz
Publié : mar. 29/mars/2005 16:29
par cederavic
tu peux aussi le faire sur plusieur lignes :
Code : Tout sélectionner
; au lieu de
a = b + c + d + e + f + g
; sur plusieur lignes
a = b
a + c
a + d
a + e
a + f
a + g
petite remarque aussi : tu n'a pas besoin de spécifier les type de ta variable a chaque foi que tu l'utilise du moment que tu l'initialise avec .x (par exemple, au debut tu as Global a.f, plus loin dans le code tu peux faire a + 0.75)
Publié : mar. 29/mars/2005 19:27
par Le Soldat Inconnu
tu peux aussi faire
Global truc, bidule, machin
au lieu de faire 36 global
Publié : mer. 30/mars/2005 13:34
par eRz0r
Ouep mais alors ma ligne sera trop grande, j'ai 50 parametres ^^
eRz
Publié : mer. 30/mars/2005 13:38
par Le Soldat Inconnu
ben fait des lignes de 10 ou fait des groupes par type
