Bonjour,
Je dois développer une application en 2D avec la SFML comme projet de fin d'année avec 3 autres personnes, et je m'occupe de l'écriture des dialogues et de leur affichage. Alors pour l'instant celui qui gère les collisions a déjà défini que si on déplace le personnage jouable dans une zone à proximité d'un lapin, un texte est affiché au dessus du lapin, d'ailleurs voici une partie du code qui permet cet affichage :
////////////////////////////////////////////////////////////
sf::Sprite pnj;//On définit tout ce qui est relatif au lapin
sf::Texture pnjTexture;
pnjTexture.loadFromFile("images/lapin.png");
pnj.setTexture(pnjTexture);
pnj.setScale(0.5,0.5);
pnj.setPosition(900,50);
sf::Sprite pnjZone;
sf::Texture pnjZoneTexture;
pnjZoneTexture.create(38,38);
pnjZone.setTexture(pnjZoneTexture);
pnjZone.setPosition(pnj.getPosition().x - 8, pnj.getPosition().y - 8);
sf::FloatRect pnjHitbox = pnj.getGlobalBounds();
sf::FloatRect pnjZoneHitbox = pnjZone.getGlobalBounds();
////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////
sf::Text message("T'aurais une carotte ?",alger,15);//On définit le texte à afficher, la police et la taille
message.setPosition(pnj.getPosition().x-70,pnj.getPosition().y-15);//On définit la zone d'affichage du texte
///////////////////////////////////////////////////////////////////
////////////////////////////////////////
if(linkHitbox.intersects(pnjZoneHitbox))
{
window.draw(message);//On définit que si link rentre dans la zone, le lapin affiche du texte
}
////////////////////////////////////////
/////////////////
window.draw(pnj);//On dessine le lapin
/////////////////
Au cas ou j'ai mis le code complet
https://www.dropbox.com/s/jliawmnxih8wo3m/main.cpp.
Déjà cet affichage de texte c'est pas moi qui l'ai fait et j'ai été sur la documentation voir mais moi à la base je sais programmer en C, pas en C++. On doit voir le C++ en deuxième et le prof nous a dit qu'on pouvait développer en C++ (tout le reste de la classe développe en C avec la SDL ^^).
Mon pote arrive à coder sans comprendre le C++, moi pas je suis bloqué aux sf::, class blabla{ public: /*du code*/ private: /*re du code*/} les virtual void y faudrait que je me tape plein de tutos ça va prendre la blinde de temps et justement la date de remise arrive à grands pas.
Voilà, donc ce que j'aimerais faire c'est afficher du texte dans une bulle de dialogue avec des bords arrondis, une image qu'on affiche quoi, ensuite du texte qui s'affiche lettre par lettre très rapidement un peu à la Zelda, et quand tout est affiché on appuie sur une touche pour passer à la bulle suivante.
Donc ce que j'ai eu comme idée, c'est de stocker le texte dans des tableaux à une dimension, et à chaque fois qu'il affiche une valeur du tableau, la boucle se répète et le compteur s'incrémente d'un, ainsi quand on arrive au dernier 0 (caractère après le dernier caractère du tableau) il permet de passer à l'affichage du texte suivant en autorisant l'évènement de la touche d'interaction à être prise en compte.
Voilà j'ai cherché sur le forum de la SFML mais je n'ai rien compris à ce que j'ai trouvé.
Si quelqu'un saurait m'aider à concrétiser ça en code ça m'aiderait ÉNORMÉMENT.
Merci d'avance.