Codage de Tetris, pouvez vous me corrigez ?

Fermé
faedog Messages postés 4 Date d'inscription mercredi 25 mars 2009 Statut Membre Dernière intervention 4 septembre 2009 - 25 mars 2009 à 19:08
Bonjour,
J'ai un problème de codage avec mon tetris, ça beug et je ne sais pas comment faire pour résoudre le problème !
Le carré s'efface ou alors ca me dit undefined reference to "depCarre(SDl_rect*, int*)"
J' ai fait une fonction qui arrête (ou pas) le carré mais ça fait beuger l'ensemble du programme !
le programme est en C, le voici :
MAIN.C
#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>
#include <SDL_ttf.h>

#include "code.h"
#include "carre.h"

int main(int argc, char *argv[])
{
   SDL_Surface *ecran = NULL, *paysage = NULL, *carre = NULL;
   SDL_Rect positionCarre, positionPaysage;
   SDL_Event event;
   SDL_EnableKeyRepeat(24, 24);
   int continuer = 1, tempsActuel = 0, tempsPrecedent = 0;
   TTF_Font *police = NULL;

    SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER);
    TTF_Init();

    SDL_WM_SetIcon(SDL_LoadBMP("carre.bmp"), NULL);
    ecran = SDL_SetVideoMode(LARGEUR_FENETRE, HAUTEUR_FENETRE, 32, SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_RESIZABLE);
    SDL_WM_SetCaption("! ! ! Tetris ! ! !", NULL);
    /* srand(time(NULL));
    nombreMystere = (rand() % (MAX - MIN + 1)) + MIN ;*/

      police = TTF_OpenFont("typo_pixel.ttf", 65);
      paysage = SDL_LoadBMP("paysage3.bmp");


     carre = SDL_LoadBMP("carre.bmp");
        positionCarre.x = 20;
        positionCarre.y = 0;


     while (continuer)
     {
         SDL_PollEvent (&event) ; // regarde les évènements éventuels
         switch(event.type)
         {
             case SDL_QUIT:
                 continuer = 0;
                 break; // Fin de programme
         }

           tempsActuel = SDL_GetTicks();
           if (tempsActuel - tempsPrecedent > 1000) /* Si 1 seconde s'est écoulée depuis le dernier tour de boucle et si le carre peut se déplacer ... */
         {
             depCarre(&positionCarre,&continuer);
             if(continuer = 1)
             {
                 positionCarre.y += TAILLE_CARRE;
             }
         }

            SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
            SDL_BlitSurface(paysage, NULL, ecran, &positionPaysage);
            SDL_BlitSurface(carre, NULL, ecran, &positionCarre);
            SDL_Flip(ecran);
     }



    SDL_FreeSurface(carre);
    SDL_Quit();
    TTF_Quit();

    return EXIT_SUCCESS;
}

CARRE.c
#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>

#include "code.h"
#include "carre.h"


void depCarre(SDL_Rect* pos, int* continuer)
{
   while(*continuer)
   {
       if(pos->y + TAILLE_CARRE >= NB_BLOCS_HAUTEUR)
       {
        *continuer = 0;
       }
       else if(pos->y + TAILLE_CARRE == CARRE)
       {
           *continuer = 0;
       }
       else
       {
           *continuer = 1;
       }
   }
}

(les .h sont protégés contre la double inclusion)