IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

[SDL OPENGL] Menu 2d et jeu en 3d


Sujet :

SDL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 51
    Points : 37
    Points
    37
    Par défaut [SDL OPENGL] Menu 2d et jeu en 3d
    Bonjour,

    Je commence à développer un jeu en 3D, mais bon j'aurais souhaité avoir mon menu en 2D. J'ai donc pensé quand utilisant deux écrans, je pourrais "passer" de l'un à l'autre sans trop de problème. Mais cela me créer des bugs assez étranges.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ecran = SDL_SetVideoMode(800, 600, 32, SDL_FULLSCREEN | SDL_DOUBLEBUF);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ecran3d = SDL_SetVideoMode(800, 600, 32, SDL_OPENGL | SDL_FULLSCREEN);

    Voila pour les deux type d'affichage que je veux utiliser.

    Et le code pour changer d'écran
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
         if(nouvelfenetre != fenetre){
            if(nouvelfenetre==3 && fenetre==1){
                //Passage de la fenetre 1 a la fenetre 3
                FSOUND_Stream_Stop(musique_menu);
                SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
                SDL_Flip(ecran);
                //ecran3d = SDL_SetVideoMode(800, 600, 32, SDL_OPENGL);
                ecran3d = SDL_SetVideoMode(800, 600, 32, SDL_OPENGL | SDL_FULLSCREEN);
                fenetre = 3;
            }else if(nouvelfenetre==1 && fenetre==3){
                //Passage de la fenetre 3 a la fenetre 1
                glClear(GL_COLOR_BUFFER_BIT);
                SDL_GL_SwapBuffers();
                //ecran = SDL_SetVideoMode(800, 600, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
                ecran = SDL_SetVideoMode(800, 600, 32, SDL_FULLSCREEN | SDL_DOUBLEBUF);
                SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
                SDL_Flip(ecran);
                fenetre = 1;
                FSOUND_Stream_Play(FSOUND_FREE, musique_menu);
     
            }
         }
    Maintenant les bug

    En mode pleine écran, aucun problème pour passer du menu 2d à l'écran 3d, par contre, lorsque je veux revenir au menu il ne s'affiche qu'une fois sur trois (environ). (Mais le son et la gestion des évènements marche très bien...)

    En mode fenêtre, le problème est inverse. Lorsque que je lance mon écran 3d, il attend bizarrement un event avant d'afficher quoi que ce soit...sinon pour revenir au menu la aucun problème particulier...

    Si quelqu’un à une explication se serais top! (Peut être qu’on ne peut tout simplement pas utiliser plusieurs SDL_SetVideoMode ….)

  2. #2
    Membre régulier Avatar de lXT95l
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 106
    Points : 116
    Points
    116
    Par défaut
    C'est déconseillé de bliter des surfaces avec opengl.
    Le mieux c'est de construire ta surface menu avec la SDL puis l'afficher sur un plan 2d avec opengl.

  3. #3
    Membre actif Avatar de ironzorg
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 288
    Points : 245
    Points
    245
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ecran = SDL_SetVideoMode(800, 600, 32, SDL_FULLSCREEN | SDL_DOUBLEBUF);
     
    ecran3d = SDL_SetVideoMode(800, 600, 32, SDL_OPENGL | SDL_FULLSCREEN);
    En faisant ça tu créés deux fenetre, le double fenetrage n'étant pas encore géré par SDL ...

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 51
    Points : 37
    Points
    37
    Par défaut
    Ouaip...c'est bien domage...enfin bon pas le choix je vais tout fair en opengl...quelqun a t'il un lien de tuto SDL/OPENGL en C (pas en c++)...?

  5. #5
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par devtroll
    Ouaip...c'est bien domage...enfin bon pas le choix je vais tout fair en opengl...quelqun a t'il un lien de tuto SDL/OPENGL en C (pas en c++)...?
    Tu peux regarder les tutoriels ici :

    http://jeux.developpez.com/tutoriels/

    C'est souvent en C++ mais pas du C++ compliqué, la compréhension et port vers du C devrait être assez simple.


    Jc

Discussions similaires

  1. disparition des couleurs dans un jeu [SDL & OpenGL]
    Par youness15 dans le forum OpenGL
    Réponses: 1
    Dernier message: 11/04/2015, 21h57
  2. Réponses: 8
    Dernier message: 07/04/2015, 19h48
  3. Réponses: 6
    Dernier message: 06/04/2015, 02h02
  4. Menu avec SDL+OpenGL
    Par f56bre dans le forum SDL
    Réponses: 2
    Dernier message: 04/11/2006, 11h40
  5. [Debutant] Sdl & OpenGl link ne marche pas
    Par Riko dans le forum OpenGL
    Réponses: 9
    Dernier message: 18/02/2004, 16h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo