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 Compteur KEYDOWN


Sujet :

SDL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    dev
    Inscrit en
    janvier 2021
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : janvier 2021
    Messages : 10
    Points : 7
    Points
    7
    Par défaut SDL Compteur KEYDOWN
    Bonjour, j'aimerai faire en sorte qu'à chaque fois que l'utilisateur de l'app appuis sur SPACE cela ajoute un et que le score s'actualise sur la fenetre. Pour le moment j'appuis une fois sur SPACE, 0 s'affiche puis plus rien après. Comment pourrais-je faire ? Merci pour votre aide, 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
    103
    104
    105
    106
    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL/SDL.h>
    #include <SDL_ttf.h>
     
    #define LARGEUR_WINDOW 600
    #define LONGUEUR_WINDOW 800
     
    void ExitWithError(const char* message);
    void DestroyAndExitWithError(const char* message, SDL_Renderer* renderer, SDL_Window *window);
    void afficherTexture(const char* chemin, SDL_Renderer* renderer, SDL_Window* window);
     
    int main(int argc, char** argv)
    {
        SDL_Window* window = NULL;
        SDL_Renderer* renderer = NULL;
     
        if (SDL_Init(SDL_INIT_VIDEO) != 0)
        {
            ExitWithError("SDL n'a pas pu se lancer.");
        }
     
        window = SDL_CreateWindow("Titre de la fenetre", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, LONGUEUR_WINDOW, LARGEUR_WINDOW, 0);
     
        if (window == NULL) {
            ExitWithError("La fenetre n'a pas pu s'ouvrir.");
        }
     
        /*-----------------------------------------------------------*/
     
        renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_SOFTWARE);
     
        if (renderer == NULL) {
            ExitWithError("Création rendu échoué.");
        }
     
        if (TTF_Init() == -1) {
            printf("TTF_Init: %s\n", TTF_GetError());
            exit(EXIT_FAILURE);
        }
     
        TTF_Font* police = NULL;
     
        police = TTF_OpenFont("../../../../Desktop/polices/Outwrite.ttf", 65);
     
        SDL_Color couleur = { 255, 255, 255 };
     
        afficherTexture("../../../../Desktop/ListeOfImg/imagetest.bmp", renderer, window);
        afficherTexture("../../../../Desktop/ListeOfImg/super-mario-title.bmp", renderer, window);
     
        SDL_RenderPresent(renderer);
     
        SDL_bool program_launched = SDL_TRUE;
        SDL_Texture* Message = NULL;
        SDL_Surface* scoreSurface;
     
        int score = 0;
        while (program_launched) 
        {
            SDL_Event event = { 0 };
     
     
            while (SDL_PollEvent(&event)) {
                switch (event.type) {
                    case SDL_QUIT:
                        program_launched = SDL_FALSE;
                        break;
                    case SDL_KEYDOWN:
                        if (event.key.keysym.sym == SDLK_SPACE) {
                                score++;
     
                                scoreSurface = TTF_RenderText_Solid(police, &score, couleur);
     
                                if (scoreSurface == NULL) {
                                    TTF_CloseFont(police);
                                    TTF_Quit();
                                    DestroyAndExitWithError("TTF_RenderText_Solid", renderer, window);
                                }
     
                                Message = SDL_CreateTextureFromSurface(renderer, scoreSurface);
                                if (Message == NULL) {
                                    TTF_CloseFont(police);
                                    TTF_Quit();
                                    DestroyAndExitWithError("SDL_CreateTextureFromSurface", renderer, window);
                                }
                                SDL_FreeSurface(scoreSurface);
     
                                SDL_Rect rectangleText = { 0, 0, 100, 100 };
     
                                if (SDL_RenderCopy(renderer, Message, NULL, &rectangleText) != 0) {
                                    TTF_CloseFont(police);
                                    TTF_Quit();
                                    DestroyAndExitWithError("SDL_CreateTextureFromSurface", renderer, window);
                                }
     
                                SDL_RenderPresent(renderer);
                        }                  
                        continue;
     
                    default:
                        continue;
                }
            }
        }
     
        /*-----------------------------------------------------------*/

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    juin 2010
    Messages
    6 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : juin 2010
    Messages : 6 766
    Points : 31 011
    Points
    31 011
    Billets dans le blog
    4
    Par défaut
    - Tes chemins pour trouver les fichiers sont fous
    - Tes paramètres de TTF_RenderText_Solid sont mauvais
    - Ton code met à jour l'affichage uniquement quand tu appuyes sur la barre espace
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

Discussions similaires

  1. [SDL 1.2] problème avec l'affichage de compteur en SDL
    Par ali kira dans le forum SDL
    Réponses: 1
    Dernier message: 29/03/2015, 09h41
  2. Compteur en SDL
    Par ettibo dans le forum SDL
    Réponses: 2
    Dernier message: 08/06/2008, 19h10
  3. Remise à 0 d'un compteur automatique
    Par missllyss dans le forum SQL
    Réponses: 4
    Dernier message: 15/12/2003, 16h46
  4. [opengl et sdl]
    Par Gonath dans le forum OpenGL
    Réponses: 6
    Dernier message: 08/12/2003, 09h49
  5. Migration Access > SQL Server (suite) : Compteur
    Par LadyArwen dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/03/2003, 14h08

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