Historique des modifications - Message

Message #586

Sujet: Bug dans une GUI


TypeDateAuteurContenu
Dernière modification15-11-2006 15:41:18Esselfe
Salut,

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

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 message15-11-2006 05:03:23Esselfe
Salut,

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

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

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
336 invités en ligne
membre en ligne: -
RSS Feed