salut tout le monde,
en ce moment je programme un menu, qui sera utiliser dasn mes futurs jeux!
donc je vous décris ce que je me suis dis : j'ai crée une classe "menu" qui gère tout le menu, puis une classe "bouton" qui permet de crée des bouton au lancement du jeux (nouvelle partie, charger...), puis une classe "window" pour créer des fenetre. Donc en gros, le menu -contient- des boutons et -contient- des fenetres.
En code j'ai fait ca (j'ai enlevé ce qui sert a rien ici):
Code C/C++ :
class menu
{
private:
bouton *ClicTextNewGame;
window *NewGameWindow;
}
puis dans le constructeur de "menu"
Code C/C++ :
ClicTextNewGame = new bouton;
NewGameWindow = new window;
Dans une methode de "menu" qui est appelé au lancement du jeu, je crée donc un bouton pour lancer une nouvelle partie, puis je crée une fenêtre qui sera pas affichée pour le moment.
Ensuite dans la boucle d'affichage du menu, je test si le curseur est sur le bouton, puis si on clic:
Code C/C++ :
ClicTextNewGame->cliquableText("Nouvelle Partie",100,400);
Code C/C++ :
void bouton::cliquableText(std::string text, int posX, int posY)
{
// récupère la taille en pixel de la chaine (X et Y)
int pixelSizeOfText_X = dbTextWidth((char*) text.c_str());
int pixelSizeOfText_Y = dbTextHeight((char*) text.c_str());
// on voit si le curseur passe sur le texte
if (dbMouseX()>posX & dbMouseX()<posX + pixelSizeOfText_X & dbMouseY()>posY & dbMouseY()<posY + pixelSizeOfText_Y)
{
dbText(100,dbScreenHeight()-150,(char*) m_InfoText.c_str());
dbInk( dbRGB (116,116,116),0);
// si le joueur clic alors qu'il est sur le texte
if(dbMouseClick() == 1)
{
[color=red]ICI AFFICHAGE FENETRE[/color]
}
}
else
{
dbInk( dbRGB (m_baseColorText_R,m_baseColorText_G,m_baseColorText_B),0);
}
dbText(posX, posY,(char*) text.c_str());
}
Donc le truc c'est que je voudrais appeler une méthode "afficherFenetre" qui est dans la classe "window", mais je sais pas comment faire... Je voudrais faire un:
Code C/C++ :
NewGameWindow->afficherFenetre();
mais je ne peux pas utiliser mon objet (mauvaise portée...)
Comment je dois faire ?