Hello,
je suis en train de programmer un mini jeu, composé en gros de carrés et triangles rouges
soucis : Comment fait on toute la partie "interface" (ihm) ?
si je résume une appli opengl telle que lue & appris partout, c'est un timer qui appelle "un repaint" X fois par seconde... faire un rendu d'une scène ,c'est bien gentil, mais ça ne représente pas du tout une application finie.
il y a au moins une dizaine d'écrans à faire :
"intro"
"menu"
"game over"
"scores"
"settings", chaque menu du settings
"écran de jeu"
"chaque sous écran de jeu"..
+ sur chacun de ces écrans, l'interaction à gérer
je me suis inventé mon propre système :
// une classe abstraite ECRAN
- une methode RENDER
- une methode onClic
// une sous classe par ECRAN
// "le main" est une liste d'ECRANS + indice ecran courant
---------------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 //boucle principale du programme : onClic (x,y): ecranCourant.clic(x,y); draw : ecranCourant.draw();
puis l'intérieur de chaque écran :
une classe BOUTON
- x, y
- on Clic
un ECRAN possède une liste de BOUTON
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 //le onClic d'un ecran : foreach( mesboutons as bouton) if (je suis dans le X Y du bouton ) bouton.clic // et par exemple dans le "bouton clic " on peut faire // main.ecranCourant = un autre écran
ça fonctionne, je suis content, mais bon, je m'en sort uniquement car je fais de le 2D et donc je maitrise le X Y à l'écran ^^
Je gère tout comme ça, mais c'est de l'amateurisme complet
y a t il une façon "officielle / bien " de gérer les ihms ?
Comment ça fonctionne en vrai, toute la gestion des menus d'un jeu ? (exemple Quake... ou façon warcraft III)
ça représente 10000000 de lignes de code ?
ps ; je ne prétends pas faire un truc aussi bien hein ... mais je dis juste
"pas d'ihm -> on va pas bien loin". C'est très important toute cette partie.
j'en fous de dessiner une théière en mipmap , je veux faire une application entière. Cad toute une cinématique d'écrans, des boutons cliquables qui déclenchent des actions, qui modifient le jeu etc.
merci
Partager