Page 1 sur 1

( résolu)gagner une vie...

Publié : mar. 14/avr./2009 0:04
par beauregard
... chaque 500 points !
Je souhaiterai savoir comment faire, pour que chaque fois que la variable score atteint 500 points( puis 1000, puis 1500, puis 2000, puis 2500, puis 3000...), hop, une vie de plus pour le joueur.

extrait du jeu( un bout de code peu savant) :

Code : Tout sélectionner

;- joueur gagne une vie
  If (score>490 And bonusvie=0) Or (score>990 And bonusvie=1) Or (score>1490 And bonusvie=2) Or (score>1990 And bonusvie=3)
    bonusvie+1:vie+1:Flifeup(Xgentil+11, Ygentil) ; joueur gagne une vie tout les 500 pts
  EndIf 
en vous remerciant :)

Publié : mar. 14/avr./2009 0:36
par Ar-S
Une tite boucle de ce genre devrait faire l'affaire non ?

Code : Tout sélectionner

GagneUneVieA=500
Score=0 : NbrVie=1

;(...) code du jeu qui fait monter le score...

;boucle qui faire gagner une vie tout les 500 pts
Repeat
If Score=GagneUneVieA
  nbrVie=nbrVie+1
  GagneUneVieA=GagneUneVieA+500
EndIf
ForEver
la même chose simulant l'ajout des vie et l'incrémentation du score jusquà 3500

Code : Tout sélectionner

GagneUneVieA=500
Score=500 : NbrVie=1 

Repeat
If Score=GagneUneVieA
  nbrVie=nbrVie+1
  GagneUneVieA=GagneUneVieA+500
  Debug Score
  Debug nbrVie
  Delay(1000)
  Score=Score+500
EndIf
Until GagneUneVieA=3500

Publié : mar. 14/avr./2009 0:49
par beauregard
Ar-S a écrit :Une tite boucle d ce genre devrait faire l'affaire non ?

Code : Tout sélectionner

GagneUneVieA=500
Score=0 : NbrVie=1

;(...) code du jeu qui fait monter le score...

;boucle qui faire gagner une vie tout les 500 pts
Repeat
If Score=GagneUneVieA
  nbrVie=nbrVie+1
  GagneUneVieA=GagneUneVieA+500
EndIf
ForEver
c'est exactement çà, il faut utiliser une variable supplémentaire, simple et efficace, merci Ar-S :D

Publié : mar. 14/avr./2009 11:57
par cha0s
Autre solution avec une constante

Code : Tout sélectionner

#GagneUneVieA=500
Score=0 : NbrVie=1

;(...) code du jeu qui fait monter le score...

;boucle qui faire gagner une vie tout les 500 pts
Repeat
If not Score % #GagneUneVieA
  nbrVie=nbrVie+1
EndIf
ForEver