variable+procedure

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
eRz0r
Messages : 30
Inscription : ven. 14/janv./2005 17:42

variable+procedure

Message 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
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message 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)

eRz0r
Messages : 30
Inscription : ven. 14/janv./2005 17:42

Message 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
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

pas normal, avec la variable en global, ça doit marcher sans problème.
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
eRz0r
Messages : 30
Inscription : ven. 14/janv./2005 17:42

Message 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
eRz0r
Messages : 30
Inscription : ven. 14/janv./2005 17:42

Message 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
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message 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
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
eRz0r
Messages : 30
Inscription : ven. 14/janv./2005 17:42

Message 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
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message 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)
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

tu peux aussi faire

Global truc, bidule, machin

au lieu de faire 36 global
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
eRz0r
Messages : 30
Inscription : ven. 14/janv./2005 17:42

Message par eRz0r »

Ouep mais alors ma ligne sera trop grande, j'ai 50 parametres ^^

eRz
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

ben fait des lignes de 10 ou fait des groupes par type :)
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Répondre