Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme dans le TP de mario

Sujet résolu
    31 octobre 2006 à 20:54:20

    Rebonjour les zero(et oui c'est encore moi :p );

    J'ai recommençai le TP depuis le début(maintenant que j'ai tout compris ;) )
    Mais il y a toujours quelque petite erreur(heu j'ai dis petite? :euh: )

    Voici mon erreur:

    Citation : erreur

    syntax error before '*' token



    Le seule truc que j'ai compris la dedans c'est que ya un probleme avec le * (je sais je suis nul en anglais :-° )

    Voici mon code pour que vous savez ou se trouve l'erreur :
    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL/SDL.h>
    #include <SDL/SDL_image.h>

    #include "constantes.h"


    int main(int argc, char *argv[])
    {
        SDL_Surface *ecran = NULL, *menu = NULL;
        SDL_Rect positionMenu;
        SDL_Event eventMenu;


        SDL_Surface *mario[4] = {NULL}, *marioActuel = NULL, *caisse = NULL, *caiseeOK = NULL, *objectif = NULL;
        SDL_Rect position;
        SDL_Event event;
        int continuerJeu = 1;


        positionMenu.x = 0;
        positionMenu.y = 0;

        int continuerMenu = 1;

        if ( SDL_Init(SDL_INIT_VIDEO) == -1 )
        exit(EXIT_FAILURE);

        SDL_WM_SetIcon(IMG_Load("caisse.jpg"), NULL);

        ecran = SDL_SetVideoMode(LARGEUR_FENETRE, HAUTEUR_FENETRE, 32, SDL_HWSURFACE);

        if (ecran == NULL)
        exit(EXIT_FAILURE);

        SDL_WM_SetCaption("Mario Sokoban", NULL);

        while(continuerMenu)
        {
            SDL_WaitEvent(&eventMenu);
            switch(eventMenu.type)
            {
                case SDL_QUIT:
                continuerMenu = 0;
                break;

                case SDL_KEYDOWN:
                switch(eventMenu.key.keysym.sym)
                {
                    case SDLK_ESCAPE:
                    continuerMenu = 0;
                    break;

                    case SDLK_1:


                    break;
                }
                break;

                case SDL_MOUSEBUTTONUP:
                switch (eventMenu.button.button)
                {
                    case SDL_BUTTON_RIGHT:
                    continuerMenu = 0;
                    break;
                }
                break;
            }

            menu = IMG_Load("menu.jpg");
            SDL_BlitSurface(menu, NULL, ecran , &positionMenu);
            SDL_Flip(ecran);
        }

        SDL_FreeSurface(menu);
        SDL_Quit();
        exit(EXIT_SUCCESS);
    }


    J'espère que vous trouverait où est l'erreur :p

    Merci d'avance pour vos reponse
    • Partager sur Facebook
    • Partager sur Twitter
      31 octobre 2006 à 20:59:47

      Tu déclares des variables au milieu d'un switch, tu ne les utilises pas, et tu demandes ce qui va pas ? La question est plus comment ça aurait pu aller. En lisant ton code, je ne comprends pas du tout ce que tu voudrais qu'il fasse.
      • Partager sur Facebook
      • Partager sur Twitter
        31 octobre 2006 à 21:32:52

        Euh je serai toi j'enlèverai le * devant mario[4]
        La tu crées un pointeur sur un tableau de pointeurs si je ne m'abuse. Si tu mets juste mario[4] tu crées un tableau de 4 pointeurs, ce que tu cherches il me semble.
        Aussi, essaie de mettre toutes tes déclarations de variables au début du main.
        • Partager sur Facebook
        • Partager sur Twitter
          2 novembre 2006 à 19:33:16

          Ok merci beaucoup pour les réponses

          Mais mateo a fait un pointeur sur un tableau :

          Citation : mateo

          Variables de type défini par la SDL


          Voici pour commencer toutes les variables de types définis par la SDL dont j'ai besoin :

          SDL_Surface *mario[4] = {NULL}; // 4 surfaces pour chacune des directions de mario
          SDL_Surface *mur = NULL, *caisse = NULL, *caisseOK = NULL, *objectif = NULL, *marioActuel = NULL;
          SDL_Rect position, positionJoueur;
          SDL_Event event;


          Ca veux dire qu'il a faut???
          J'essaye sans le pointeur pour voir si ça marche.
          • Partager sur Facebook
          • Partager sur Twitter
            2 novembre 2006 à 20:17:35

            SDL_Surface *mario[4] = {NULL};

            Ceci est un bien tableau de 4 pointeurs.

            Je réitère ma remarque, ne déclare pas de variables dans un switch ! (surtout si elles servent à rien comme ici)
            • Partager sur Facebook
            • Partager sur Twitter
              2 novembre 2006 à 20:28:43

              Merci je réedite mon poste

              Maintenant ça marche

              Merci beaucoup !!!!
              • Partager sur Facebook
              • Partager sur Twitter
                2 novembre 2006 à 21:56:20

                Encore une chose ;)

                Ca ne sert à rien de chaque fois charger menu avec IMG_Load... Il suffit d'initialiser menu avant la boucle ;) là ça ralenti le programme ;)

                <citation nom="The French">vous savez ou se trouve l'erreur :

                        menu = IMG_Load("menu.jpg")// tu peux mettre ça avant la boucle, pas dedans ! ^^
                        SDL_BlitSurface(menu, NULL, ecran , &positionMenu);
                        SDL_Flip(ecran);
                    }


                • Partager sur Facebook
                • Partager sur Twitter
                  3 novembre 2006 à 8:46:03

                  merci beaucoup pour l'info!
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Probleme dans le TP de mario

                  × 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