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 :

Écrire du texte mais ne s'affiche pas [SDL_TTF]


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 19
    Par défaut Écrire du texte mais ne s'affiche pas
    Je viens d'installer la bibliothèque SDL.ttf, je pense avoir fait tout ce qu'il fallait , mais lorsque j'essaie d'afficher du texte sur le fond , seul l'image apparait . J'ai également essayer de compiler le code du cour mais seul le fond s'affiche également.
    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <SDL/SDL.h>
    #include <SDL_ttf.h>
    #include <SDL_image.h>
    #define FENETRE_LARGEUR 500
    #define FENETRE_HAUTEUR 500
     
    int main(int argc,char *argv[])
    {
        TTF_Font *police = NULL;
        SDL_Color coleurNoir = {0,0,0};
        int i=0,j,continuer = 1;
        SDL_Event event;
        SDL_Rect position;
        SDL_Surface *ecran = NULL, *zozor = NULL;
        if(SDL_Init(SDL_INIT_VIDEO) == -1)
        {
            fprintf(stderr,"ERREUR DE L'INITIALISATION DE LA SDL : %s\n",SDL_GetError());
            exit(EXIT_FAILURE);
        }
        if(TTF_Init() == -1)
        {
            fprintf(stderr,"ERREUR DE L'INITIALISATION DE LA SDL : %s\n",SDL_GetError());
            exit(EXIT_FAILURE);
        }
        ecran = SDL_SetVideoMode(FENETRE_LARGEUR, FENETRE_HAUTEUR, 32, SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_RESIZABLE);
        if(ecran == NULL)
        {
            fprintf(stderr,"ERREUR DE L'INITIALISATION DE LA SDL : %s\n",SDL_GetError());
            exit(EXIT_FAILURE);
        }
        police = TTF_OpenFont("ARIALBD.TTF",64);
        if(police == NULL)
        {
            fprintf(stderr,"ERREUR LOAD POLICE : %s\n",TTF_GetError());
            exit(EXIT_FAILURE);
        }
        zozor = TTF_RenderText_Blended(police,"salut tout le monde",coleurNoir);
        while(continuer)
        {
            SDL_WaitEvent(&event);
            switch(event.type)
            {
            case SDL_QUIT:
                continuer = 0;
                break;
            }
        SDL_FillRect(ecran,NULL,SDL_MapRGB(ecran->format,0,0,255));
        position.x = 0;
        position.y = 0;
        SDL_BlitSurface(zozor,NULL,ecran,&position);
        SDL_Flip(ecran);
        }
        TTF_CloseFont(police);
        TTF_Quit();
        SDL_Quit();
        return EXIT_SUCCESS;
    }

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 161
    Billets dans le blog
    152
    Par défaut
    Bonjour,

    Votre problème se situe dans le fait que vous affichiez le texte avant d'effacer l'écran avec la couleur bleu.
    Plus précisément :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    zozor = TTF_RenderText_Blended(police,"salut tout le monde",coleurNoir);
    ...
    SDL_FillRect(ecran,NULL,SDL_MapRGB(ecran->format,0,0,255));
    La première ligne affiche du texte, par contre, la deuxième ligne, elle, recouvre toute votre fenêtre de bleu (par dessus le texte), donc le texte étant recouvert, il est effacé.
    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 averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 19
    Par défaut
    pardon mais c'est pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zozor = TTF_RenderTexte_Solide(police,"salut tout le monde",couleurNoire);
    mais c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SDL_BlitSurface(zozor,NULL,ecran,&position);
    en tout cas merci j'ai déjà resolut le problème
    j'ai fait comme çà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     if(SDL_BlitSurface(zozor,NULL,ecran,&position) == -1) 
                 {
                   exit(EXIT_FAILURE);
                  }
    je sais pas coment mais le probleme a résolut
    merci.

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 161
    Billets dans le blog
    152
    Par défaut
    Je crois que vous ne savez pas trop ce que vous avez fait.
    Vous me montrez juste le code permettant de vérifier si la fonction a fait une erreur. Il est vrai que c'est bien d'y penser, mais ce n'est pas là la résolution de votre soucis.
    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.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 19
    Par défaut
    oui je suis tout a fait d'accord avec toi mais après la vérification de l'erreur le problème est résolue je sais pas comment mais c'est la vérité et maintenant j'ai pas besoin de vérifier l'erreur de SDL_BlitSurface
    j'ai même copier coller le code que ta vue est sa marcher sans rien changer.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 19
    Par défaut
    et si vous essayer mon code chez vous il va fonctionner mais chez moi avant que je vérifier l'erreur la surface s'affiche sans texte. Mais juste après la vérification de l'erreur le code a fonctionner sa n'a pas de sens mais je sais pas d'ou le problème

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/04/2009, 16h24
  2. Texte verticaux ne s'affiche pas
    Par lox dans le forum IHM
    Réponses: 1
    Dernier message: 10/01/2009, 07h53
  3. Réponses: 2
    Dernier message: 07/05/2008, 12h02
  4. Réponses: 1
    Dernier message: 01/12/2007, 18h37
  5. Les données sont dans la base, mais ne s'affichent pas
    Par ryan dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 31/03/2006, 10h59

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