Posté le 22/07/2018 17:04
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 58 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 22/07/2018 19:01 | #
Oh, le jeu Zelda de Remiweb est une référence. Il y a Clonelab, aussi. Ce que tu veux, en définitive, c'est une moteur de dialogue, n'est-ce pas ? Je peux te donner des pistes, si tu veux
Citer : Posté le 22/07/2018 19:03 | #
Oui c'est ça! Je veux bien s'il te plaît, merci!
Citer : Posté le 22/07/2018 19:16 | #
Ok. Avant toute chose : en mode Text ou en mode Locate ?
Citer : Posté le 22/07/2018 19:18 | #
En mode Text
Citer : Posté le 22/07/2018 19:25 | #
On peut utiliser les strings et afficher les caracteres l'un apres l'autre ?
Citer : Posté le 22/07/2018 19:29 | #
Yep.
En fait, ce que tu peux faire, assez simplement, c'est définir un ID pour chaque PNJ. Quand un PNJ parle, en prenant aussi en compte l'avancée de l'histoire, etc., Tu as donc une partie du code dédiée au stockage des conversations :
Then "Rei" → Str 1 //Nom du perso
"Bon... On y va ?" → Str 2 //On peut avoir un dialogue par défaut
Q = 1 ⇒ "Bonjour ! Je m'appelle Rei !" → Str 2 //Si la quête en est à 1
Q ≥ 2 And Q ≤ 5 ⇒ "Si vous le permettez, je vais choisir une arme." → Str 2 // Un peu après
//Etc.
IfEnd
Ensuite, selon ce que tu veux faire, ça varie. C'est un peu plus simple si tu veux afficher ton texte sur une seule ligne que sur deux. Seulement, tu peux afficher plus de texte sur deux lignes que sur une...
Tu as le choix entre deux alternatives : Soit tu choisis un caractère spécial (comme "θ") pour définir ton saut de ligne/passage à la suite du texte (ce que fait Remiweb dans son Zelda) et que tu vas placer où tu le souhaites, soit tu fais un programme qui gère ça tout seul. Je te conseillerais peut-être la première option.
En gros, tu aurais :
Tu peux difficilement dépasser les 31 caractères sur la largeur complète de ton écran, si on part du principe qu'un caractère prend, en moyenne, 4 pixels de large. Tu vois un peu le truc ?
Ajouté le 22/07/2018 à 19:37 :
Ensuite, tu as tout simplement une boucle qui affiche ça.
StrSrc(Str 2, "θ")→A
For 1→B To A-1
Text 1,1,StrLeft(Str 2, B) //On écrit tout le texte jusqu'avant le caractère"θ"
Next
While Not GetKey //On attend que le joueur appuie sur une touche
WhileEnd
Cls //Ou plutôt Text 1,1, " "
StrShift(Str 2, A+1 → Str 2 //On rogne la Str jusqu'après le caractère "θ"
WhileEnd
Je t'ai fait un truc très rudimentaire , là. Tu comprends un peu le tout ?
Citer : Posté le 22/07/2018 19:47 | #
Oui je vois...
Ajouté le 22/07/2018 à 20:16 :
Et pour afficher la suite de la chaîne sur la ligne suivante, il faut ajouter quoi ?
Citer : Posté le 22/07/2018 20:22 | #
Tu peux avoir une double boucle For :
Cls //Ou plutôt Text 1,1, " "
For 0→C To 1
StrSrc(Str 2, "θ")→A
For 1→B To A-1
Text 1 + 6C,1,StrLeft(Str 2, B) //On écrit tout le texte jusqu'avant le caractère"θ"
Next
StrShift(Str 2, A+1 → Str 2 //On rogne la Str jusqu'après le caractère "θ"
Next
While Not GetKey //On attend que le joueur appuie sur une touche
WhileEnd
WhileEnd
Citer : Posté le 22/07/2018 20:32 | #
D'accord! Ca y est j'ai compris, merci infiniment pour ton aide !
Citer : Posté le 22/07/2018 20:34 | #
Si tu as compris, c'est super ! Bien entendu, essaye de moduler le truc à ta guise et d'en faire quelque chose qui te convient au mieux !
Citer : Posté le 23/07/2018 08:44 | #
Moi pour Odyssée je fait un truc très con mais que j'apprécie : je vide l'écran et j'affiche le texte au fu et à mesure avec des boucles For par ralentir. Le plus ? on peut aussi afficher des choix : [F1]Met une gifle [F2] Lui dit d'aller se faire fou***,... etc
Et en fonction de la touche pressée tu fait avancer le joueur dans sa quête.
Bon c'est pas du tout esthétique, je vous l'accorde mais c'est sympa de pouvoir faire des choix au niveau des dialogues.
Je me souviens d'un passage dans le Zelda PC de Remiweb ou j'avais envie de répondre "mais non, je ne t'aiderais pas ce sont tes emmerdes !!" et où j'ai été contraint de répondre d'un ton cul-cul la praline au possible : "Je le fait tous de suite ! Ouuuiiii" .
Citer : Posté le 23/07/2018 10:13 | #
Rien ne t'empêche de modifier le code que je viens de donner pour rajouter ces possibilités, et d'avoir d'autres caractères spéciaux dans la Str qui traduisent une question à laquelle le joueur doit répondre !
Citer : Posté le 23/07/2018 13:23 | #
Allez pas trop loin, vous allez finir par avoir les caractères de contrôle type ce qu'il y a dans la génération 3 des jeux Pokémon
Mon blog ⋅ Mes autres projets
Citer : Posté le 23/07/2018 14:50 | #
Et pourquoi pas ?
Citer : Posté le 23/07/2018 18:47 | #
Mixer les données et le contrôle, je sais pas trop si j'aime ça... d'un autre côté comment faire ça de façon efficace ?
Citer : Posté le 27/07/2018 12:04 | #
Conversation vachement intéressante, ça vaudrait pas le coup de regarder ce qui est fait du coté des jeux pros et d'en faire une TDM ?
Citer : Posté le 27/07/2018 12:11 | #
À voir ! Le TDM devra être fait pour la semaine prochaine !
Le TDM n°3 porte sur les Str, ce qui donne déjà des pistes. Je peux en faire un autre, complémentaire et d'un niveau plus avancé, dans la continuité de celui-ci.
Citer : Posté le 29/07/2018 21:06 | #
Prends garde à ce que les TDM restent accessibles à un public large, si tu le peux.