Publié : sam. 18/avr./2009 1:55
le sons fait planter wine
. je testerais sous vista quand j'aurai 5 minutes.

Forums PureBasic - Français
https://www.purebasic.fr/french/
et la mienneFig a écrit :ouais... Mais non...
Dis en plus, tu as piqué ma curiositébn
Code : Tout sélectionner
si liste d'action$(1)="déplacement X,Y"
alors fonction déplacement
... etc
Code : Tout sélectionner
Structure ACTION
status.l
id.l
endstructure
Code : Tout sélectionner
\status = #ACTION_PAS_COMMENCER
\status = #ACTION_EN_COUR
\status = #ACTION_INTEROMPUE
\status = #ACTION_FINIE
Code : Tout sélectionner
\id = #MOVE_TO
\id = #FOLLOW_UNIT
Code : Tout sélectionner
structure ACTION
status.l
id.l
endstructure
structure PERSONNAGE
liste_action.ACTION[10]
position.coordonne
cible.coordonne
endstructure
MonHero.PERSONNAGE
MonHero\liste_action[0]\status = #ACTION_PAS_COMMENCER
MonHero\liste_action[0]\id = #MOVE_TO
MonHero\Cible\x = 100
MonHero\Cible\y = 100
if MonHero\liste_action[0]\status = #ACTION_PAS_COMMENCER
MonHero\liste_action[0]\status = #ACTION_EN_COUR
if MonHero\liste_action[0]\id = #MOVE_TO
BougeTonHero(MonHero\Cible\x,MonHero\Cible\y)
endif
endif
etc...
Code : Tout sélectionner
procedure jefaisuneaction(x,y)
...
endprocedure
Code : Tout sélectionner
a$="jefaisuneaction(10,12)"
Code : Tout sélectionner
if FindString(a$, "jefaisuneaction",1)
X=val(mid(a$,17;2)
Y=val(mid(a$,20;2)
jefaisuneaction(X,Y) ;notez que c'est exactement le contenu de la variable donc... y'a moyen de gagner des lignes !!
endif
Code : Tout sélectionner
@*a$ ;lance la procedure dont le nom est contenu dans a$ avec ses parametres
Code : Tout sélectionner
Structure vecteur2
x.f
y.f
EndStructure
Structure ACTION
Status.l
Type.l
Position.vecteur2
Cible.vecteur2
;etc...
EndStructure
#ACTION_STANDBYE = 1
#ACTION_MOVETO = 0
Procedure FaitUneAction(*A.ACTION)
; Tu interpretes la structure et plus un string : D
Select *A\Type
Case #ACTION_STANDBYE
Debug "Action en stand-bye"
Case #ACTION_MOVETO
Debug "Action move to : "
Debug "Départ:"
Debug "x = " + Str(*A\Position\x)
Debug "y = " + Str(*A\Position\y)
Debug "Arrivé:"
Debug "x = " + Str(*A\Cible\x)
Debug "y = " + Str(*A\Cible\y)
EndSelect
EndProcedure
MonAction.ACTION
MonAction\Type = #ACTION_STANDBYE
FaitUneAction(MonAction)
Debug "---------------------------------------"
MonAction.ACTION
MonAction\Type = #ACTION_MOVETO
MonAction\Position\x=10
MonAction\Position\y=11
MonAction\Cible\x=201
MonAction\Cible\y=310
FaitUneAction(MonAction)
Debug "---------------------------------------"