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 :

Probléme de débutant


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 15
    Par défaut Probléme de débutant
    Bonjour à Tous,

    Je suis un débutant en SDL et j'essaye dans un premier temps à l'aide de Code Blocks d'ouvrir une fenêtre sur fond blanc et d'afficher une image à l'abscisse (0,0). Mais l'image ne s'affiche pas du tout.

    voici le code :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL/SDL.h>
     
    void pause();
     
    int main(int argc, char *argv[])
    {
        SDL_Surface *ecran = NULL, *imageDeFond = NULL;
        SDL_Rect positionFond;
     
        positionFond.x = 0;
        positionFond.y = 0;
     
        SDL_Init(SDL_INIT_VIDEO);
     
        ecran = SDL_SetVideoMode(800, 600, 32, SDL_HWSURFACE|SDL_NOFRAME|SDL_FULLSCREEN);
        SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));
     
        imageDeFond = SDL_LoadBMP("1.bmp");
     
        SDL_BlitSurface(imageDeFond, NULL, ecran, &positionFond);
     
        SDL_Flip(ecran);
        pause();
     
        SDL_FreeSurface(imageDeFond); /* On libère la surface */
        SDL_Quit();
     
        return EXIT_SUCCESS;
    }
     
     
    void pause()
    {
        int continuer = 1;
        SDL_Event event;
     
        while (continuer)
        {
            SDL_WaitEvent(&event);
            switch(event.type)
            {
                case SDL_QUIT:
                    continuer = 0;
            }
        }
    }
    Merci d'avance pour votre aide, je suis quasiment sure que l'erreur est toute bidon car je début vraiment vraiment.
    A+ Matt

  2. #2
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 085
    Par défaut
    Salut ^^

    Le probleme est que je ne vois pas d'erreur dans ce code :/
    Peut tu nous donner l'erreur que te retourne code block ?

    Sinon, voici quelque question :
    As tu linker la bibliotheque SDL ?
    Est tu sûr du chemin de la SDL est bon ?


    Pour linker sous code block, il faut faire "Project -> Build Options -> Linker et ensuite Add et selectionner la lib SDL.

  3. #3
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 15
    Par défaut
    Re,
    Ca m'ouvre une fenêtre blanche en plein écran puis c'est tout pas d'image 1.bmp, et code blocks ne revoit a priori aucune erreur.

    le rapport build log est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Checking for existence: C:\Documents and Settings\justonm\Bureau\code_blocksssss\QPC\bin\Debug\QPC.exe
    Executing: "C:\Program Files\CodeBlocks/cb_console_runner.exe" "C:\Documents and Settings\justonm\Bureau\code_blocksssss\QPC\bin\Debug\QPC.exe"  (in C:\Documents and Settings\justonm\Bureau\code_blocksssss\QPC\.)
    Process terminated with status -1073741510 (0 minutes, 14 seconds)
    Donc j'imagine que la librairie n'est pas le probléme puisque le langage propre au SDL est reconnu.
    Par contre pour fermer le programme j'ai beau cliqué rien ne se passe, je suis obligé de faire ALT+TAB et de cliquer sur la croix de la console du programme car je suis en mode debugger.
    Merci d'avance
    A+ Matt.

  4. #4
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 085
    Par défaut
    salut,

    Ta fonction pause se termine quand tu clique sur la croix de ta fenetre, ce qui risque pas d'arriver vu que tu est en fullscreen. Enleve le flag fullscreen.


    Il n'y a aucune erreur dans ton code.
    Je l'ai tester tel quel, et il m'affiche bien l'image en haut a gauche.

    Le probleme vient donc de ton image.
    Soit l'image que tu blit est trop petite pour la voir (ca m'etonnerait), soit tu blit une image blanche (ca aussi, ca m'etonnerai), soit ton image n'est pas a la bonne place dans ton project (il faut qu'il soit a la racine, a cote des .h, .c et des dossier bin et obj), soit le nom de ton image n'est pas bon (ton image doit avoir pour titre "1" et non "1.bmp". Ne touche pas au code, renomme le nom de ton image tout simplement)

  5. #5
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 15
    Par défaut
    Merci ça marche au poil.

  6. #6
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 085
    Par défaut
    Content que ça fonctionne ^^
    Quelle était le probleme ?

    Pour éviter que ce genre de prise de tête ne se répète, je te conseil fortement de tester le retour de tes fonctions.
    Si tu l'avais fait dès le début, tu aurais tout de suite trouver l'origine du probleme.

    Pense au tag résolu stp

    Bonne continuation.

Discussions similaires

  1. requete, problème de débutant
    Par focus dans le forum Access
    Réponses: 4
    Dernier message: 16/02/2006, 06h51
  2. Problème de débutant dans une requête
    Par decour dans le forum Access
    Réponses: 7
    Dernier message: 14/10/2005, 15h17
  3. [C#][service windows] problème de débutant avec 1 timer
    Par Nycos62 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 14/10/2005, 12h22
  4. Réponses: 3
    Dernier message: 24/09/2005, 10h34
  5. [DB2] problèmes de débutant
    Par rémi_tounul dans le forum DB2
    Réponses: 4
    Dernier message: 21/04/2005, 18h08

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