Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - nicooomg

Pages: « Précédente 1 2 3 [4]
46
Général / Re : [segfault] Appel de RenderWindow::create()
« le: Juin 26, 2012, 12:13:34 pm »

47
Général / Re : [segfault] Appel de RenderWindow::create()
« le: Juin 25, 2012, 11:29:02 pm »
gcc version 4.7.0 <GCC>
et pleins d'autres trucs... !

48
Général / [segfault] Appel de RenderWindow::create()
« le: Juin 25, 2012, 05:16:38 pm »
Bonjour,

Je viens de reinstaller Code::Blocks, avec pour compilateur: MinGW ayant GCC 4.7.0 !
J'utilise SFML 2 !
De: http://freefr.dl.sourceforge.net/project/mingw/Installer/mingw-get-inst/mingw-get-inst-20120426/mingw-get-inst-20120426.exe

Mon code compilait très bien avant cette mise à jour...
Maintenant...:

Citer
#0 6E182F29   sf::Window::Window(this=0x77af1bd1) (D:\developpement\sfml-master\src\SFML\Window\Window.cpp:47)
#1 00919519   sf::RenderWindow::RenderWindow(this=0x77af1bd1) (D:\developpement\sfml-master\src\SFML\Graphics\RenderWindow.cpp:35)
#2 00402BCC   ?? () (??:??)
#3 004010B9   ?? () (??:??)
#4 00401284   ?? () (??:??)
#5 7694339A   KERNEL32!BaseCleanupAppcompatCacheSupport() (C:\Windows\syswow64\kernel32.dll:??)
#6 7EFDE000   ?? () (??:??)
#7 77A59EF2   ntdll!RtlpNtSetValueKey() (C:\Windows\system32\ntdll.dll:??)
#8 7EFDE000   ?? () (??:??)
#9 77A59EC5   ntdll!RtlpNtSetValueKey() (C:\Windows\system32\ntdll.dll:??)
#10 0040126C   ?? () (??:??)
#11 ??   ?? () (??:??)

Dans mon projet (C::B) j'ai
Citer
link options:
-lsfml-graphics-d
-lsfml-window-d
-lsfml-system-d
-lsfgui
-lopengl32

compile define:
SFML_STATIC
SFGUI_STATIC

Que faut-il faire?

merci, nico

49
Graphique / Suppression de widget sfgui
« le: Juin 14, 2012, 05:55:09 pm »
Bonjour,

Pas sur que ce soit le bon endroit, je tente ma chance quand meme!
Apres avoir fait une petite boite alert (une window, un bouton et un label), j'essaye de la detruire pour liberer la memoire.

J'utilise SFML 2.0 & SFGUI.

Le constructeur, pour voir un peu la bete:
AlertBox::AlertBox(const std::string& errortitle, const std::string& errortext) :
    display(true)
{
    // The window
    dialog = sfg::Window::Create(sfg::Window::Style::TITLEBAR);
    dialog->SetTitle(errortitle);


    // The layouter
    sfg::Box::Ptr box( sfg::Box::Create( sfg::Box::VERTICAL, 5.0f ) );

    // The elements
    text = sfg::Label::Create(errortext);
    btn = sfg::Button::Create("Ok");
    btn->GetSignal(sfg::Widget::OnLeftClick).Connect(&AlertBox::Destroy, this);

    box->Pack(text);
    box->Pack(btn, false);
    dialog->Add(box);
}

La fonction Destroy ne change que la variable membre "display" à false.

Dans ma boucle graphique, j'ai ceci:
        // Boucle sur les boites alert
        for(auto itr = m_window->GetPerennials()->List().begin(); itr != m_window->GetPerennials()->List().end(); ++itr)
        {
                // Si l'objet n'a jamais été dessiné, on l'ajoute au sfg::Desktop
            if(itr->second->Display() && !itr->second->Drawn())
            {
                // La fonction AlertBox::GetDrawable retourne un sfg::Window::Ptr
                desktop.Add(itr->second->GetDrawable());
            }
            else if(!itr->second->Display())
            { // Ceci est quand on vient d'appuyer sur le bouton, et que la fonction Destroy a ete appellee
                        // On supprime le sfg::Window de sfg::Desktop
                desktop.Remove(itr->second->GetDrawable());
            }
        }
        m_window->Clear(); // sf::RenderWindow::Clear();
        desktop.Update( clock.restart().asSeconds() );
        m_window->RenderGUI(sfgui); // sfg::Display(m_window);
        m_window->Render(); // sf::RenderWindow::Display();
 

Et Quand j'appuie sur le bouton, he bien le sfg::Window ne disparait pas. Il reste sur l'ecran ! Neanmoins je ne peux plus interagir.
Il doit y avoir un probleme au niveau de Clear, ou Update.

Quelqu'un saurais me gider? :)
merci, nico

50
Graphique / Re : Affichage d'écrans differents, flash d'un sprite
« le: Juin 11, 2012, 05:33:29 pm »
Merci
Les modos peuvent fermer le topic ^^

51
Graphique / Re : Affichage d'écrans differents, flash d'un sprite
« le: Juin 11, 2012, 03:40:06 pm »
Merci de te réponse laurent, ca marche ^^

Donc a chaque tour de boucle, je refais:

clear()
window.draw() sur chaque objet visible
display()

C'est bien ca?

52
Graphique / Re : Affichage d'écrans differents, flash d'un sprite
« le: Juin 11, 2012, 01:19:22 am »
En gros, le ingame::run() c'est ca:
int Ingame::Run(Window* App)
{



    while(App->Running()) {
        // Event processing.
        while(App->GetEvent(event) ) {
            //desktop.HandleEvent( event );

            // If window is about to be closed, leave program.
            if(Window::Closing(event)) {
                exit(0);
            }
        }
        std::cout << "in game"<<std::endl;
        App->Render();
    }
    return -1;
}

Mais j'ai toujours cet ecran epileptique... :(

53
Graphique / Affichage d'écrans differents, flash d'un sprite
« le: Juin 10, 2012, 12:30:29 am »
Bonjour,
Je me suis mis pour de bon à la sfml apres avoir vu la comparaison sfml vs sdl du createur...

Je fais un jeu en 2D, et je vais avoir besoin de trois ecrans, un splash screen, le menu de connexion et le jeu lui meme, donc pour separer proprement ces ecrans, voici mon main:

int main()
{
    Window* w = new Window();

    std::vector<Screen*> Screens;
    Screens.push_back(new SplashScreen());
    //Screens.push_back(new LoginScreen());
    Screens.push_back(new Ingame());

    int iscreen = 0, temp;
    while(iscreen >= 0)
    {
        // On lance l'affichage
        temp = Screens[iscreen]->Run(w);
        // On vient de sortir de la boucle de Screen::Run()
        // Si temp est different, on met a jour les variables
        if(temp != iscreen)
        {
            delete Screens[iscreen];
            w->Clear();
            iscreen = temp;
        }
    }
    return EXIT_SUCCESS;
}

L'affichage du Splash se fait tres bien, mais apres quelques secondes (le temps que le splash passe, j'ai du mettre 2secondes) mon ecran commence a flasher l'image qu'il y avait dans le splash.

Voici le code du splash:
class SplashScreen: public Screen
{
    public:
        SplashScreen() {}
        ~SplashScreen() {}
        int Run (Window* App);

    private:
};

int SplashScreen::Run(Window* App)
{

    sf::Texture splash;
    splash.loadFromFile("Data/gui/splash/splashscreen.jpg");

    sf::Sprite spr(splash);

    sf::Clock clock;
    sf::Event event;

    clock.restart();


    while(App->Running()) {
        // Event processing.
        while(App->GetEvent(event) ) {
            //desktop.HandleEvent( event );

            // If window is about to be closed, leave program.
            if(Window::Closing(event)) {
                exit(0);
            }
        }
        std::cout << "splash screen"<<std::endl;
        if(clock.getElapsedTime() > sf::seconds(2)) // On reste sur cet ecran 2secs
        {
            return 1;
        }
        App->Draw(spr);
        App->Render();
    }
    return -1;
}

Infos:
App->Draw(spr) est un simple template pour faire appel à RenderWindow::draw();
App->Render() est un simple alias pour faire appel à RenderWindow::display();

Donc a la sortie du splash, comme on le voit dans le main, je fais un w->Clear(); (alias pour RenderWindow::clear()) et de plus, l'objet SplashScreen est détruit, donc le sprite & texture devraient logiquement disparaitres....
Mais a ce moment la, mon ecran flash, et si je le regarde plus de 30sec, je fais une crise d'épilepsie !

Quelqu'un a une idée?

nico.

Pages: « Précédente 1 2 3 [4]
anything