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 conditions affichage image


Sujet :

SDL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut SDL conditions affichage image
    Bonjour à tous^^
    je suis débutant et je cherche une fonction qui, pour un paramètre donné, va afficher la bonne image, du style "if truc = machin -> afficher 1.bmp sinon afficher 2.bmp" Je me suis basé sur le code SDL de base de CodeBlocks qui permet d'afficher une image cb.bmp, j'ai voulu l'adapter dans une structure de conditions pour pouvoir arriver à ce que je souhaite, mais il y a toujours des erreurs de non-déclaration de variables et autres. Pouvez-vous m'aidez? Voici le code de base :

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    #ifdef __cplusplus
        #include <cstdlib>
    #else
        #include <stdlib.h>
    #endif
    #ifdef __APPLE__
    #include <SDL/SDL.h>
    #else
    #include <SDL.h>
    #endif
     
    int main ( int argc, char** argv )
    {
        // initialize SDL video
        if ( SDL_Init( SDL_INIT_VIDEO ) < 0 )
        {
            printf( "Unable to init SDL: %s\n", SDL_GetError() );
            return 1;
        }
     
        // make sure SDL cleans up before exit
        atexit(SDL_Quit);
     
        // create a new window
        SDL_Surface* screen = SDL_SetVideoMode(640, 480, 16,
                                               SDL_HWSURFACE|SDL_DOUBLEBUF);
        if ( !screen )
        {
            printf("Unable to set 640x480 video: %s\n", SDL_GetError());
            return 1;
        }
     
        // load an image
        SDL_Surface* bmp = SDL_LoadBMP("cb.bmp");
        if (!bmp)
        {
            printf("Unable to load bitmap: %s\n", SDL_GetError());
            return 1;
        }
     
        // centre the bitmap on screen
        SDL_Rect dstrect;
        dstrect.x = (screen->w - bmp->w) / 2;
        dstrect.y = (screen->h - bmp->h) / 2;
     
        // program main loop
        bool done = false;
        while (!done)
        {
            // message processing loop
            SDL_Event event;
            while (SDL_PollEvent(&event))
            {
                // check for messages
                switch (event.type)
                {
                    // exit if the window is closed
                case SDL_QUIT:
                    done = true;
                    break;
     
                    // check for keypresses
                case SDL_KEYDOWN:
                    {
                        // exit if ESCAPE is pressed
                        if (event.key.keysym.sym == SDLK_ESCAPE)
                            done = true;
                        break;
                    }
                } // end switch
            } // end of message processing
     
            // DRAWING STARTS HERE
     
            // clear screen
            SDL_FillRect(screen, 0, SDL_MapRGB(screen->format, 0, 0, 0));
     
            // draw bitmap
            SDL_BlitSurface(bmp, 0, screen, &dstrect);
     
            // DRAWING ENDS HERE
     
            // finally, update the screen :)
            SDL_Flip(screen);
        } // end main loop
     
        // free loaded bitmap
        SDL_FreeSurface(bmp);
     
        // all is well ;)
        printf("Exited cleanly\n");
        return 0;
    }

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Prémièrement, c'est un code C++. (Utilisation de bool)
    Deuxièmement, j'ai eu un problème car il trouvait pas le fichier SDL.h il faut mettre le bon chemin ( qui chez moi est SDL/SDL.h, alors que je sais pas pourquoi, mais dans le programme ce chemin n'est que pour APPLE. )

    C'est tout dans les problème de compilation
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre éclairé
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Points : 842
    Points
    842
    Par défaut
    Salut,
    Supprime ton main.cpp et recrée un main.c.
    Ensuite pour le type bool il faut que tu inclues : #include <stdbool.h>
    Ou alors tu les enlève ^^
    Plus tu pédales moins fort, moins t'avances plus vite.

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

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 076
    Points : 2 328
    Points
    2 328
    Par défaut
    Citation Envoyé par MattCand Voir le message
    Bonjour à tous^^
    je suis débutant et je cherche une fonction qui, pour un paramètre donné, va afficher la bonne image, du style "if truc = machin -> afficher 1.bmp sinon afficher 2.bmp" Je me suis basé sur le code SDL de base de CodeBlocks qui permet d'afficher une image cb.bmp, j'ai voulu l'adapter dans une structure de conditions pour pouvoir arriver à ce que je souhaite, mais il y a toujours des erreurs de non-déclaration de variables et autres. Pouvez-vous m'aidez? Voici le code de base :

    Je ne comprend pas : tu decrit exactement ce que tu dois faire !

    Si tu veux afficher l'une ou l'autre image, tu dois dabord les charger avec SDL_LoadBMP avant de faire la boucle principal. Forcement, 2 SDL_LoadBMP, donc 2 SDL_FreeSurface.
    Ensuite, si tu veux afficher l'une ou l'autre en fonction d'une condition, tu fais le plus simplement du monde :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (/* Condition */)
        SDL_BlitSurface(/*Surface1*/, NULL, ecran, NULL);
    else
        SDL_BlitSurface(/*Surface2*/, NULL, ecran, NULL);
    Bien sur, il faut le SDL_Flip(ecran) pour afficher les modification.

    Si tu as des variable non declarer, c'est quelles sont .... pas declarer

    Soit tu a fait une faute de frappe, soit tu n'as carrement pas declarer la variable.

Discussions similaires

  1. Problème affichage image SDL
    Par lorderasmus dans le forum SDL
    Réponses: 7
    Dernier message: 05/02/2014, 18h59
  2. SDL Affichage image
    Par flouck dans le forum SDL
    Réponses: 8
    Dernier message: 05/02/2013, 10h54
  3. [SDL] manipulation d'image
    Par zdra dans le forum OpenGL
    Réponses: 4
    Dernier message: 28/02/2004, 16h56
  4. [Kylix] pb Affichage image .jpg
    Par sioux dans le forum EDI
    Réponses: 4
    Dernier message: 18/01/2004, 19h20

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