ah oui, excusez moi, je raconte des bétises. D'ailleurs, avec peur basique, on peut voir que je n'utilisais déjà plus cette méthode:djes a écrit :Et le select case existe aussi. Et puis vouloir utiliser un goto pour éviter un if, et pourtant appeler une procédure, au niveau performances c'est du n'importe quoi.
Code : Tout sélectionner
; Affichage clone bonbon si existe.
ForEach bonbon()
If bonbon()\attract=0; Si ghost n'est pas à proximité d'un bonbon, alors ce dernier continu son chemin.
bonbon()\x=bonbon()\x+bonbon()\sensx
bonbon()\Y=bonbon()\Y+bonbon()\sensy
EndIf
;ZoomSprite3D(#eonbon3D, 32+bonzoom, 32-bonzoom) ; 32, 32)
DisplaySprite3D ( bonbon()\id , bonbon()\x, bonbon()\Y, 255)
DisplaySprite3D ( #eonbon3D , bonbon()\x-4, bonbon()\Y-4, 105)
zattract=(30+10)
If gtaille>80:zattract=(60+20):EndIf
If gtaille>120:zattract=(90+30):EndIf
If gtaille>160:zattract=(120+40):EndIf
bonbon()\attract=0; remise à 0 variable attraction
If bonbon()\x+8>repereX-zattract And bonbon()\x+8<repereX+zattract And ghostaie<2
If bonbon()\Y+8>repereY-zattract And bonbon()\Y+8<repereY+zattract
bonbon()\attract=1
If bonbon()\x+8>repereX
bonbon()\x-4
Else
bonbon()\x+4
EndIf
If bonbon()\Y+8>repereY
bonbon()\Y-4
Else
bonbon()\Y+4
EndIf
If bonbon()\x+8>repereX-10-(zattract/10) And bonbon()\x+8<repereX+10+(zattract/10)
If bonbon()\Y+8>repereY-10-(zattract/10) And bonbon()\Y+8<repereY+10+(zattract/10)
mange=1:pointd=1:pointm=0:pointt=255:pointg=gtaille:pointn=niveau:pointX=bonbon()\x+8:pointY=bonbon()\Y+8
EndIf
EndIf
EndIf
EndIf
; Si un clone sort de l'écran, alors il faut le supprimer, mais...
If bonbon()\x>1024+128 Or bonbon()\x<0-128 Or bonbon()\Y>768+128 Or bonbon()\Y<0-128
supprbonbon=1 ; ...soyons prudent...
EndIf
; si ghost mange bonbon, alors...
If mange=1 And ghostaie<2:supprbonbon=1:EndIf ; ...très prudent...
If supprbonbon=1
supprbonbon=0
DeleteElement(bonbon()):LastElement(bonbon()); <- ...car ces 2 là, faut pas en mettre partout.
If mange=1
If energie<20:energie+1:EndIf
If gtaille<200:gtaille+10:EndIf
If gtaille<200:score+(10*niveau):EndIf
If gtaille=200:score+(100*niveau):EndIf
mange=0
EndIf
EndIf
Next