Historique des modifications - Message

Message #586

Sujet: Bug dans une GUI


Type Date Auteur Contenu
Dernière modification 15-11-2006 15:41:18 Esselfe
Salut,

C'est mon premier message ici, j'ai lu ici et là; il est génial Irrlicht smile

je viens de faire une surprise. Les boutons ne disparaissent pas toujours, et oui

J'ai démarré le débogueur mais je ne retrouve pas la trace de ce bug...


L'app démarre, le menu init, et quand j'appuis sur Options, le ligne contenu dans l'eventreceiver
pour le clik de ^options^ ne semble pas s'effectuer, ou le nouveau draw n'est pas complètement
modifié...

Voilà du code:
public void initApp(){
// (...)
            XCgui.initGUI_menu_elements();

            // la loop principale
            while (XCgame.device.Run() && !XCgame.appEnd)
            {
                if (XCgame.inMenu)
                {
                    // affichage menu
                    XCgame.videoDriver.BeginScene(true, false, XCgui.GUIBackColor);  // Zbuffer false car GUI == 2D
                    XCgui.guienv.DrawAll();
                    XCgame.videoDriver.EndScene();
                }
                else if (XCgame.inGame)
                {
                    // affichage jeu
                    XCgame.videoDriver.BeginScene(true, true, XCgame.GameBackColor);
                    XCgame.ingameText.Draw();
                    XCgame.device.SceneManager.DrawAll();
                    XCgame.videoDriver.EndScene();
                }
                else if (XCgame.inOptions)
                {
                    // affichage des options
                    XCgame.videoDriver.BeginScene(true, false, XCgui.GUIBackColor);
                    XCgui.guienv.DrawAll();
                    XCgame.videoDriver.EndScene();
                }
                else
                {
                    // juste au cas où l'on oubli de renverser les flags inMenu/inOptions  qqpart ^^
                    Console.WriteLine("la loop principale ne sait pas où se brancher. XCgame.inMenu = true;");
                    XCgame.inMenu = true;
                }
            }
}
static public bool OnEvent(Event ev){
           {...}
                    else if (ev.Caller.ID == (int)XCgui.GUIItems.PlaySingleXC)
                        {
                            Console.WriteLine("Vous voulez jouer.");
                            // enleve les boutons et met les flags d'aff au jeu
                            //XCgui.guienv.Dispose();  // on pourra le réinitialiser lorsque necessaire...
                            XCgui.disposeGUI_menu_elements();
                            XCgame.ingameText.Visible = true;
                            XCgame.inMenu = false;
                            XCgame.inOptions = false;
                            XCgame.inGame = true;
                            return false;
                        }
                    else if (ev.Caller.ID == (int)XCgui.GUIItems.Options)
                        {
                            Console.WriteLine("Vous allez dans les options.");
                            XCgui.XCLogo.Enabled = true;
                            XCgui.XCLogo.Visible = true;
                            XCgui.playSingleButton.Enabled = false;
                            XCgui.playSingleButton.Visible = false;
                            XCgui.playMultiButton.Enabled = false;
                            XCgui.playMultiButton.Visible = false;
                            XCgui.optionsButton.Enabled = false;
                            XCgui.optionsButton.Visible = false;
                            XCgui.exitButton.Enabled = false;
                            XCgui.exitButton.Visible = false;
                            XCgui.optionsDoneButton.Enabled = true;
                            XCgui.optionsDoneButton.Visible = true;
                            
                            XCgame.ingameText.Visible = false;
                            XCgame.inMenu = false;
                            XCgame.inGame = false;
                            XCgame.inOptions = true;
                            return false;
                        } // fin ev.Type == EventType.GUIEvent
            else if (ev.Type == EventType.KeyInputEvent && XCgame.inGame)
            {
                switch (ev.KeyCode)
                {
                    case KeyCode.Escape:
                        // enable the useful buttons...
                        XCgui.initGUI_menu_elements();
                        XCgame.ingameText.Visible = false;
                        XCgame.inGame = false;
                        XCgame.inOptions = false;
                        XCgame.inMenu = true;
                        return false;
                    default:
                        return false;
                }
            }
            return false;
        }  // fin device_OnEvent() */
Création du message 15-11-2006 05:03:23 Esselfe
Salut,

C'est mon premier message ici, j'ai lu ici et là; il est génial Irrlicht smile

je viens de faire une surprise. Les boutons ne disparaissent pas toujours, et oui

J'ai démarré le débogueur mais je ne retrouve pas la trace de ce bug...


L'app démarre, le menu init, et quand j'appuis sur Options, le ligne contenu dans l'eventreceiver
pour le clik de ^options^ ne semble pas s'effectuer, ou le nouveau draw n'est pas complètement
modifié...

Voilà du code:
public void initApp(){
// (...)
            XCgui.initGUI_menu_elements();

            // la loop principale
            while (XCgame.device.Run() && !XCgame.appEnd)
            {
                if (XCgame.inMenu)
                {
                    // affichage menu
                    XCgame.videoDriver.BeginScene(true, false, XCgui.GUIBackColor);  // Zbuffer false car GUI == 2D
                    XCgui.guienv.DrawAll();
                    XCgame.videoDriver.EndScene();
                }
                else if (XCgame.inGame)
                {
                    // affichage jeu
                    XCgame.videoDriver.BeginScene(true, true, XCgame.GameBackColor);
                    XCgame.ingameText.Draw();
                    XCgame.device.SceneManager.DrawAll();
                    XCgame.videoDriver.EndScene();
                }
                else if (XCgame.inOptions)
                {
                    // affichage des options
                    XCgame.videoDriver.BeginScene(true, false, XCgui.GUIBackColor);
                    XCgui.guienv.DrawAll();
                    XCgame.videoDriver.EndScene();
                }
                else
                {
                    // juste au cas où l'on oubli de renverser les flags inMenu/inOptions  qqpart ^^
                    Console.WriteLine("la loop principale ne sait pas où se brancher. XCgame.inMenu = true;");
                    XCgame.inMenu = true;
                }
            }
}
static public bool OnEvent(Event ev){
           {...}
                    else if (ev.Caller.ID == (int)XCgui.GUIItems.PlaySingleXC)
                        {
                            Console.WriteLine("Vous voulez jouer.");
                            // enleve les boutons et met les flags d'aff au jeu
                            //XCgui.guienv.Dispose();  // on pourra le réinitialiser lorsque necessaire...
                            XCgui.disposeGUI_menu_elements();
                            XCgame.ingameText.Visible = true;
                            XCgame.inMenu = false;
                            XCgame.inOptions = false;
                            XCgame.inGame = true;
                            return false;
                        }
                    else if (ev.Caller.ID == (int)XCgui.GUIItems.Options)
                        {
                            Console.WriteLine("Vous allez dans les options.");
                            XCgui.XCLogo.Enabled = true;
                            XCgui.XCLogo.Visible = true;
                            XCgui.playSingleButton.Enabled = false;
                            XCgui.playSingleButton.Visible = false;
                            XCgui.playMultiButton.Enabled = false;
                            XCgui.playMultiButton.Visible = false;
                            XCgui.optionsButton.Enabled = false;
                            XCgui.optionsButton.Visible = false;
                            XCgui.exitButton.Enabled = false;
                            XCgui.exitButton.Visible = false;
                            XCgui.optionsDoneButton.Enabled = true;
                            XCgui.optionsDoneButton.Visible = true;
                            
                            XCgame.ingameText.Visible = false;
                            XCgame.inMenu = false;
                            XCgame.inGame = false;
                            XCgame.inOptions = true;
                            return false;
                        } // fin ev.Type == EventType.GUIEvent
            else if (ev.Type == EventType.KeyInputEvent && XCgame.inGame)
            {
                switch (ev.KeyCode)
                {
                    case KeyCode.Escape:
                        // enable the useful buttons...
                        XCgui.initGUI_menu_elements();
                        XCgame.ingameText.Visible = false;
                        XCgame.inGame = false;
                        XCgame.inOptions = false;
                        XCgame.inMenu = true;
                        return false;
                    default:
                        return false;
                }
            }
            return false;
        }  // fin device_OnEvent() */

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
155 invités en ligne
membre en ligne: -
RSS Feed