Page 4 sur 4

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

Publié : dim. 19/avr./2009 12:01
par Le Soldat Inconnu
J'ai arrêter ce jeu, je me suis lancé dans beaucoup plus gros et plus dur.

Je ne sais si j'arriverais à le finir.

J'ai finis le moteur d'affichage. L'éditeur de carte à 50%. Il faut que je fasse la gestion du personnage.
Dès que j'ai ça, je ferrais un poste avec démo.
Avant c'est pas la peine, ça ne ressemble à rien.

Publié : mer. 29/avr./2009 14:51
par Fig
ça sera en 3D isométrique ? tiles hexagonales ou en losange ?

Publié : mer. 29/avr./2009 16:48
par Le Soldat Inconnu
oui, en 3D isométrique, et pour la forme, ni l'une ni l'autre.
Point de vue 3D perso

Publié : mer. 29/avr./2009 19:40
par Fig
ouais... Mais non... :?

Dis en plus, tu as piqué ma curiositébn 8O

Publié : mer. 29/avr./2009 19:54
par Thyphoon
Fig a écrit :ouais... Mais non... :?

Dis en plus, tu as piqué ma curiositébn 8O
et la mienne :P :D

Ac

Publié : jeu. 30/avr./2009 10:22
par Fig
A propos de gestion de personnage...
Actuellement j'ai fini mon affichage de carte en isometrique, le losange, avec trois couches.
J'en suis aussi à la gestion des personnages.
Ce que j'ai fait c'est d'intégrer à chaque perso du joueur une liste de 10 actions. Et pour l'ennemi idem mais avec une liste beaucoup plus longue.C'est un genre de programme simplifié.
J'ai implanté une variante du pathfinding de comtois en thread //.

Je suis en train de lister les types d'actions élémentaires possible pour les personnages:

répétition d'action(s), déplacement de A à B, construire un batiment type X, récolter des ressources, chercher des ressources autour du personnage si la case contenant la ressource exploitée est vide....


Donc ça donne pour un perso qui doit ramener du bois:

1) déplacement jusqu'a l'emplacement indiqué par le joueur
2) vérifier si il a toujours la ressource sinon lancer une recherche aux alentour et revenir en 1
3)récolter le bois
4) déplacement jusqu'au dépot
5) recommencer jusqu'a ce qu'il n'y ait plus de ressource ou qu'une autre action soit donnée par le joueur

Bon au lieu de faire

Code : Tout sélectionner

si liste d'action$(1)="déplacement X,Y"
alors fonction déplacement
... etc
je voudrais lancer la fonction dont le nom est dans action$(1) directement


ca donne quoi en purebasic, c'est faisable ?

Publié : jeu. 30/avr./2009 12:50
par Anonyme
Bah , tu gères pour chaque personnage une liste d'action à réalisé

Code : Tout sélectionner


Structure ACTION
 status.l                    
 id.l
endstructure

status = te permet d' interrogé l'action

ex :

Code : Tout sélectionner

\status = #ACTION_PAS_COMMENCER
\status = #ACTION_EN_COUR
\status = #ACTION_INTEROMPUE
\status = #ACTION_FINIE
id = l'action a éffectué

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...

Publié : jeu. 30/avr./2009 16:35
par Fig
Merci pour la réponse !! :D

Je me suis mal expliqué je n'ai pas un problème d'organisation de mes données :wink:
je simplifie, ce n'est évidemment pas la structure que j'utilise pour les personnages :p

j'ai une procédure du nom de

Code : Tout sélectionner

procedure jefaisuneaction(x,y)
...
endprocedure
j'ai une variable a$="jefaisuneaction(10,12)"

Code : Tout sélectionner

a$="jefaisuneaction(10,12)"
j'ai un "interpréteur" qui interprète le contenu de a$ et lance la procédure adéquate

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 
Donc je veux remplacer le code ci-dessus par:

Code : Tout sélectionner

@*a$   ;lance la procedure dont le nom est contenu dans a$ avec ses parametres

Publié : ven. 01/mai/2009 12:18
par Anonyme

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 "---------------------------------------"