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 :

Menu - Sélection d'une option pour l'utilisateur


Sujet :

SDL

  1. #21
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 67
    Points : 21
    Points
    21
    Par défaut
    Je referais quelques tests pour voir, mais je ne comprends vraiment pas pourquoi ça ne fonctionne pas.

    Quand je compile, le programme se stoppe après avoir affiché l'image de démarrage en m'affichant un message de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Process terminated with status -1 (0 minutes, 2 seconds)

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 925
    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 925
    Points : 220 593
    Points
    220 593
    Billets dans le blog
    128
    Par défaut
    Rajoutez des points d'arrêt dès le début afin de pouvoir exécuter pas à pas le programme et de voir où il quitte.

  3. #23
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 67
    Points : 21
    Points
    21
    Par défaut
    Cette fois ça fonctionne, il ne trouvais pas mon image, je ne sais pas trop pourquoi, les chemin d'accès était correct, etc, mais bon, problème reglé.

    Merci beaucoup de votre aide à tous

  4. #24
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 680
    Points : 1 726
    Points
    1 726
    Par défaut
    Bien sur que ça plante !

    Code écrit par JimDraw:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void placeImages(struct Context *Context,SDL_Rect *rect)
    {
        Context->spriteSelect = SDL_LoadBMP("image/sprite/char/thief_boy_droite.bmp");
        if(Context->spriteSelect == NULL) {
            fprintf(stderr, "Erreur lors du chargement de l'image %s", SDL_GetError()); // Ecriture de l'erreur
            exit(EXIT_FAILURE);
        }
     
        SDL_SetColorKey(Context->spriteSelect, SDL_SRCCOLORKEY, SDL_MapRGB(Context->spriteSelect->format, 0, 0, 255));
        SDL_BlitSurface(Context->spriteSelect,NULL,Context->screen,&rect);
        SDL_UpdateRect(Context->screen,rect->x,rect->y,Context->spriteSelect->w,Context->spriteSelect->h); // j'ai remplacé rect.y et rect.x par rect->y et rect->x sinon la compil m'affiche une erreur.
    }
    Ce qui fait (voir en rouge) que SDL_BlitSurface reçoit l'adresse du pointeur rect, pas l'adresse de la structure pointée par rect !

    Le code correct aurait été
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void placeImages(struct Context *Context,SDL_Rect *rect)
    {
        Context->spriteSelect = SDL_LoadBMP("image/sprite/char/thief_boy_droite.bmp");
        if(Context->spriteSelect == NULL) {
            fprintf(stderr, "Erreur lors du chargement de l'image %s", SDL_GetError()); // Ecriture de l'erreur
            exit(EXIT_FAILURE);
        }
     
        SDL_SetColorKey(Context->spriteSelect, SDL_SRCCOLORKEY, SDL_MapRGB(Context->spriteSelect->format, 0, 0, 255));
        SDL_BlitSurface(Context->spriteSelect,NULL,Context->screen,rect);
        SDL_UpdateRect(Context->screen,rect->x,rect->y,Context->spriteSelect->w,Context->spriteSelect->h); // j'ai remplacé rect.y et rect.x par rect->y et rect->x sinon la compil m'affiche une erreur.
    }
    Dans le code de JimDraw, le compilateur n'y voit que du feu: il lui faut un pointeur de type SDL_Rect*, et il l'a !

    Edgar.

  5. #25
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 67
    Points : 21
    Points
    21
    Par défaut
    Si tu regardes plus haut j'ai dit que mon problème était résolu.

    Pour ce qui est des erreurs du code, ça arrive, je me suis trompé, j'ai modifié ça de mon côté quand j'y ai vu, un pointeur mal placé ça arrive, non ?

    Merci de ta réponse tout de même.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/02/2008, 17h44
  2. Réponses: 1
    Dernier message: 22/11/2007, 05h47
  3. Limiter une commande pour un utilisateur
    Par Jibees dans le forum Administration système
    Réponses: 12
    Dernier message: 02/02/2007, 20h39
  4. Réponses: 1
    Dernier message: 12/02/2006, 15h58
  5. Modifier une option pour la commande split
    Par vbcasimir dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 20/07/2005, 13h24

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