Partage
  • Partager sur Facebook
  • Partager sur Twitter

petit probleme de chrono :)

ne fonctionne que lors d'une action

Sujet résolu
    24 juillet 2006 à 14:03:33

    Bonjour a tous :)
    Voila, j'ais repris l'idée du jeu de tir proposée par M@teo21 dans le cours pour FMOD. Dans ce jeu, je voudrai afficher un chrono mais il ne fonctionne que lorsque je bouge la souris ou appuie sur une touche... Je n'arrive pas à voir pourquoi il me fait ça.

    Voici le code (juste la boucle):


            while(continuer) {
                    SDL_WaitEvent(&event);
                    switch(event.type) {
                            case SDL_QUIT:
                                    continuer = 0;
                                    break;
                            case SDL_KEYDOWN:
                                    switch(event.key.keysym.sym) {
                                            case SDLK_ESCAPE:
                                                    continuer = 0;
                                                    break;
                                            }
                                    break;
                            case SDL_MOUSEBUTTONUP:
                                    switch(event.button.button) {
                                            case SDL_BUTTON_LEFT:
                              FSOUND_PlaySound(FSOUND_FREE, shoot);
                                                   SDL_FreeSurface(textScore);
                                                    points++;
                                                    sprintf(score, "Your score : %ld points", points);
                                                    textScore = TTF_RenderText_Blended(font, score, white);
                                                    break;
                                            }
                                    break;
                            case SDL_MOUSEMOTION:
                                    positionViseur.x = event.motion.x - (viseur->w / 2);
                                    positionViseur.y = event.motion.y - (viseur->h / 2);
                                    break;
                            }

            now = SDL_GetTicks();
            if(now - prevTime >= 100) {
                    chrono += 100;
                    sprintf(time, "Chrono : %ld milli-seconds", chrono);
                    SDL_FreeSurface(textChrono);
                    textChrono = TTF_RenderText_Blended(font, time, white);
                    prevTime = now;
            }
                   
            SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0));
            SDL_BlitSurface(viseur, NULL, screen, &positionViseur);
            SDL_BlitSurface(textScore, NULL, screen, &positionTextScore);
            SDL_BlitSurface(textChrono, NULL, screen, &positionTextChrono);
            SDL_Flip(screen);
    }


    Si quelqu'un peut m'aider, son aide est la bienvenue :)

    -Cloud-
    • Partager sur Facebook
    • Partager sur Twitter
      24 juillet 2006 à 14:28:22

      Salut,
      deuxième ligne de ce que tu a affiché : remplace SDL_WaitEvent par SDL_PollEvent.

      Je n'ai pas regardé le reste.
      • Partager sur Facebook
      • Partager sur Twitter
        24 juillet 2006 à 14:32:10

        Effectivement, le probleme vennait bien de la ...
        SDL_WaitEvent "bloque" le programme, je n'y avait pas pensé.
        Je te remercie :)

        A toute !

        -Cloud-
        • Partager sur Facebook
        • Partager sur Twitter

        petit probleme de chrono :)

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown