(re)Bon(jour)(soir) a tous !!
Je m'en vais chercher de l'aide parmis les méandres du net, car ma tête a l'heure actuelle est sur le point d'explosée .
Je ne sais même pas par quel bout prendre le probléme !
Enfin, pour faire bref, je code un debut de rpg en 2D (tile-based) .
J'en suis au tout début . Je code tout ca en OpenGL / SDL pour le moment .
Et j'aimerai tout d'abord dire un grand merci a tout ceux qui m'ont aidé jusqu'a maintenant , votre aide m'a été précieuse !
J'en suis a un point, ou il faut que je fasse le point ( désolé du JdM ... ) .
Car je me rend compte que d'avancer a tatons, ca finit par devenir assez difficile et périllieux .
Mon but en ce moment est double :
- créer un ensemble de classes me permettant de gérer la base de mon jeu .
- créer un system de texte dont le mécanisme sera simillaire a ceux que j'emploirai une fois le jeu plus avancé . ( pour gérer toute sorte de choses )
Ces deux choses sont intiement liée ( sans la premiére, je n'ai pas la deuxiéme ; et sans la deuxiéme, la premiére ne me sert a rien )
Mon probléme ?
Ce n'est pas une erreru de code ect ... ces choses la sont en générale facile a résoudre ( avec aide si necessaire mais toujours assez "simple" )
Par contre, je me heurte a des probléme plus "théorique" .
Je ne vois pas trop comment vous exposer clairement le probléme sans détailler tout ce que j'ai fait jusqua présent ... mais bon on va essayer .
D'une maniére générale, je vais de la fin vers le début ... c'est un peu déroutant par fois ; car j'ai le resultat final en tête mais pas forcément les étapes intermédiaire .
Donc en général je supose l'étape X-1 et je crée l'étape X ; ensuite je supose l'étape X-2 et je fait l'étape X-1 et ainsi de suite .
En exemple concret :
-> on supose que j'ai un objet cPersonnage ( par ex ) celui-ci posséde entre autre une IA et tout le blabla qui va avec; et a partir d'une action donnée, ( on s'aproche de lui par ex. ) il va parler !
-> mon but : afficher a l'ecran le texte qu'il va dire, le disposer clairement ect, le formater a partir de sa lecture dans un fichier texte ect ...
-> on va donc pour simplifier les choses ( ca revient a la suposition de l'étape x-1 )
Pour cela : on va ( ne possédant pas encore de calsse cPersonnage), juste simulé le déclencheur du dialogue en début de notre programme .Et mettre tout les attribut necessaire a ce diablogue dans notre classe principale par ex .
Ensuite, deuxiéme simplification, je ne posséde par encore de classe me permettant de parser mes fichier .txt ou sont contenus mes info ( le dialogue en question par ex. ) Donc je vais a l'initialisation du programme, affecter directement les valeurs contenu dans mon fichier a l'objet qui les représente dans le jeu .( au lieu de les affecter automatiquement en fonction d'un nom de ficher ( donnée menebre de cPersonnage par ex ... ) ou il se trouverai .
->Une fois ces considérations faites , il ne me reste plus qu'a entré dans le vif du sujet
voici le type de dialogue a charger .
dialogue21.txt
-> simplification suivante, plsu tard, quand je "parserai" ce genre de choses, FontName = texte Dialogue, me renverrai a un fichier font.txt qui contiendra entre autre .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 FontName = Texte Dialogue Texte ="[Color = 255;0;0;1 ] !! [/Color] : Hey je suis je heureux de te rencontré ! [Bold] HAAAAAaa [/Bold] ca fait si longtps :) "
pour simplifier encore, au moment ou je devrai créer ma police dans le jeu, j'affecterai arbitrairement les valeur ci-dessous a mon objet, au lieu de les lire sur le fichier en question .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 FontName = Texte Dialogue Nom = Thryomanes normal Taille = 16 Bold = 0 Italic = FALSE Underline = FALSE
On continue pour ceux qui me suivent encore
~~~ A partir d'ici je n'ai rien codé ~~~
Je pense créer une classe cDiablogueTexte . ( notre classe princiaple ( au lieu de cPersonnage) contiendra un objet cDialogueTexte .
Cette classe aura entre autres en donnée menbre :
un cTexteBrut texte ; ( une classe ne contenant basiquement que le texte non formaté dans un obje menbre string ( std::string brut ) )
un cFont * font ; ( un pointeur vers un font, chargé en mémoire précédement )
un int mode ; pour faire simple, deux entier x et y représentant la position du texte ( on va se limiter a une/deux ligne pour le début . )
donc dans notre exemple on aura qquchose du style , une methode init(); a la création du cDialogue )
Ensuite, je ne sais pas trop ... en fait je m'enbrouille énormément .( alors que je ne suis peut-etre pas si loin de la solution .... )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 void init() { texte.brut ="[Color = 255;0;0;1 ] !! [/Color] : Hey je suis je heureux de te rencontré ! [Bold] HAAAAAaa [/Bold] ca fait si longtps :) "; y = 200 ; x = 200 ; //texte en (200,200 ) font = cRessourcesManager::GetInstance().get<cFont>("Texte Dialogue") ; }
Enfin derniére chose : je ne sais aps encore comment gérer mes deux grandes methode ( upadete() et draw() ; je pense que pour update() j'ai encore un peu temps devant moi ; mais pour draw() ... il va faloir que je fasse qquchose de propre et vite :p
Si vous avez des idées conseils, je suis preneur ; je pense en ce moment a faire une classe spéciale, contenant un conteneur ( de la STL ); ce conteneur contiendra des objets qui posséderont tous une methode draw ; et en gros, a chaque frame, je fait un draw récursif sur tout les elt de ce conteneur ....
enfin /me a besoin d'aide :p
Je sais que mon msg est assez vague mais bon :/ je posterai bien toutes mes classe, mais il y en bas une bonne 20aine et sans une seule d'entre elle on risque de vite perdre le fil ...
Partager