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 :

Rebondissement de balle dans un carré


Sujet :

SDL

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2013
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 26
    Points : 23
    Points
    23
    Par défaut Rebondissement de balle dans un carré
    Bonjours,

    Je débute en C et je m'était donné un exercice simple : faire rebondir une balle dans un carré et pouvoir faire diminuer la taille du carré en déplaçant une barre horizontalement...

    Alors voilà j'ai commencer le code mais quand je lance le programme impossible de déplacer la barre, et le programme plante.

    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
    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
    94
    95
    96
    97
    98
    99
    100
    101
    102
     
     
    #ifdef __cplusplus
        #include <cstdlib>
    #else
        #include <stdlib.h>
    #endif
     
    #include <SDL/SDL.h>
     
    int main ( int argc, char** argv )
    {
     
        SDL_Event event;
     
        int conti = 0;
     
        SDL_Surface *boule, *barre, *fond;
        SDL_Surface *ecran;
     
        SDL_Rect pos0;
        SDL_Rect posBo;
        SDL_Rect posBa;
     
        posBa.x = 70;
        posBa.y = 460;
     
        posBo.x = 320;
        posBo.y = 160;
     
         pos0.x = 0;
         pos0.y = 0;
     
        // initialize SDL video
         SDL_Init( SDL_INIT_VIDEO );
     
     
        // create a new window
        ecran = SDL_SetVideoMode(800, 600, 16,SDL_HWSURFACE|SDL_DOUBLEBUF);
     
        // load image
        fond = SDL_LoadBMP("fond.bmp");
        boule = SDL_LoadBMP("boule.bmp");
        barre = SDL_LoadBMP("barre.bmp");
     
     
     
     
            SDL_PollEvent(&event);
     
            while (conti == 0)
            {
     
                switch (event.type)
                {
     
                case SDL_QUIT:
                    conti = 1;
                    break;
     
                    case SDL_KEYDOWN:
     
                     switch(event.key.keysym.sym)
                        {
     
                        case SDLK_DOWN:
                              posBa.y ++;
                          break;
     
                        case SDLK_UP:
                              posBa.y --;
                          break;
     
     
                } // end switch
     
     
     
                }
     
                // clear screen
            SDL_FillRect(ecran, 0, SDL_MapRGB(ecran->format, 0, 0, 0));
     
            // draw bitmap
            SDL_BlitSurface(fond, NULL, ecran, &pos0);
            SDL_BlitSurface(barre, NULL, ecran, &posBa);
            SDL_BlitSurface(boule, NULL, ecran, &posBo);
     
            SDL_Flip(ecran);
     
            } // end of principale boucle
     
     
     
        // free loaded bitmap
        SDL_FreeSurface(boule);
        SDL_FreeSurface(barre);
        SDL_FreeSurface(fond);
     
     
        return 0;
    }

    Merci d'avance pour toute les réponse que vous pourrez m'apporter !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Ta ligne SDL_PollEvent(&event); est à insérer dans ta boucle while.

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2013
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 26
    Points : 23
    Points
    23
    Par défaut
    C' était bien cela ! Merci en tout cas pour la rapidité de la réponse !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Objet Balle dans un form
    Par intheair dans le forum Débuter
    Réponses: 17
    Dernier message: 13/12/2009, 10h45
  2. Détecter un clic dans le carre rouge d'une JFrame
    Par deathness dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 25/07/2009, 20h02
  3. [Java2D] Ecrire dans un carre
    Par Med Fateh dans le forum 2D
    Réponses: 3
    Dernier message: 11/04/2009, 18h57
  4. Réponses: 4
    Dernier message: 02/04/2008, 11h50
  5. Ralentir une balle dans un applet
    Par Tootsi dans le forum Applets
    Réponses: 2
    Dernier message: 03/02/2006, 10h39

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