begin process at 2012 05 27 19:17:39
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > SIMPLE JEU DU SERPENT

SIMPLE JEU DU SERPENT


 Information sur la source

Note :
5,5 / 10 - par 2 personnes
5,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Jeux Classé sous :snake, serpent Niveau :Débutant Date de création :27/05/2006 Vu / téléchargé :6 771 / 605

Auteur : goundy05

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Petit et mon premier jeu en C. Ecrit avec la SDL il s'agit d'un petit snake.
Je n'utilise aucune image que des simples rectangles colorés grâçe à la fonction FillRect.

Source

  • #include <stdlib.h>
  • #include <SDL/SDL.h>
  • #include <time.h>
  • #define N 500 /*taille maximale du snake*/
  • #define NODESIZE 10 /*largeur et hauteur d'une case*/
  • #define WINSIZE 400 /*largeur et hauteur de la fenêtre*/
  • /********************************* types **************************************/
  • typedef enum {Up, Down, Right, Left}TDirection; /*type de direction*/
  • /******************************************************************************/
  • /********************************* ecran **************************************/
  • SDL_Surface* screen = NULL; /*ecran principal*/
  • SDL_Surface* Table[N] = {NULL}; /*tableau des nodes du snake*/
  • SDL_Surface* blank; /*fond d'ecran*/
  • SDL_Surface* puce; /*puce à bouffer ^^*/
  • /******************************************************************************/
  • /********************************* positions **********************************/
  • SDL_Rect Tabpos[N], /*tableau des positions des node du snake*/
  • ppuce; /*position de la puce*/
  • /******************************************************************************/
  • /*********************************** Divers ***********************************/
  • int NodeCounter; /*représente le nombre de node actuel du snake*/
  • TDirection direction; /*Direction actuel du snake*/
  • SDL_TimerID timer; /*descripteur du timer*/
  • /******************************************************************************/
  • /************************* Prototypes des fonctions ***************************/
  • Uint32 Anime_it (Uint32, void *);
  • int snakeColl (void);
  • void Quitter (void);
  • void SetPos (void);
  • void MoveSnake (void);
  • void Show (void);
  • void PurgeScreen (void);
  • void SetPuce (void);
  • void Lose (void);
  • void freeNodes (void);
  • void AddNode (void);
  • /******************************************************************************/
  • int main ( int argc, char** argv )
  • {
  • Uint32 speed; /*vitesse du snake*/
  • SDL_Event event;
  • int done; /*vaiable de la boucle du jeu*/
  • int i; /*variable de contrôle*/
  • srand (time(NULL)); /*initialisation du générateur pseudo-aléatoire*/
  • /*initialisation de la lib SDL*/
  • i = SDL_Init (SDL_INIT_VIDEO|SDL_DOUBLEBUF| SDL_INIT_TIMER);
  • if (i < 0){
  • fprintf (stderr, "Erreur de chargement: %s", SDL_GetError());
  • exit(EXIT_FAILURE);
  • }
  • atexit (Quitter);
  • screen = SDL_SetVideoMode (WINSIZE, WINSIZE, 32, SDL_HWSURFACE);
  • if (screen == NULL){
  • fprintf (stderr, "J'arrive pas à appliquer le mode 640x480: %s", SDL_GetError ());
  • exit (EXIT_FAILURE);
  • }
  • SDL_WM_SetCaption ("Simple Snake Game by Agent-G", NULL);
  • /*Initialisations*/
  • speed = 30;
  • done = 1;
  • NodeCounter = 10;
  • direction = Right;
  • Table[0] = SDL_CreateRGBSurface(SDL_HWSURFACE, NODESIZE, NODESIZE, 32, 0, 0, 0, 0);
  • SDL_FillRect (Table[0], NULL, SDL_MapRGB (Table[0]->format, 0, 255, 0));
  • Tabpos[0].x = screen->w/2;
  • Tabpos[0].y = screen->h/2;
  • for (i=1; i<NodeCounter; i++){
  • Table[i] = SDL_CreateRGBSurface(SDL_HWSURFACE, NODESIZE, NODESIZE, 32, 0, 0, 0, 0);
  • SDL_FillRect (Table[i], NULL, SDL_MapRGB (Table[i]->format, 0, 255, 0));
  • Tabpos[i].x = Tabpos[i-1].x - NODESIZE;
  • Tabpos[i].y = screen->h/2;
  • }
  • Show ();
  • SDL_Flip (screen);
  • timer = SDL_AddTimer(1, Anime_it, &speed);
  • SetPuce ();
  • while (done){
  • SDL_WaitEvent (&event);
  • switch (event.type){
  • case SDL_QUIT:
  • done = 0;
  • break;
  • case SDL_KEYDOWN:
  • switch (event.key.keysym.sym){
  • case SDLK_UP:
  • if (direction != Down)
  • direction = Up;
  • break;
  • case SDLK_DOWN:
  • if (direction != Up)
  • direction = Down;
  • break;
  • case SDLK_RIGHT:
  • if (direction != Left)
  • direction = Right;
  • break;
  • case SDLK_LEFT:
  • if (direction != Right)
  • direction = Left;
  • break;
  • case SDLK_u: /*auguemente la vitesse*/
  • if ((speed-5)>0)
  • speed-=5;
  • break;
  • case SDLK_l:/*baisse la vitesse*/
  • if ((speed+5)<100)
  • speed+=5;
  • break;
  • case SDLK_ESCAPE:
  • done = 0;
  • break;
  • }
  • break;
  • }/*SWITCH*/
  • }/*WHILE*/
  • return 0;
  • }
  • void MoveSnake (){
  • /*s'occupe de faire bouger le snake*/
  • switch (direction){
  • case Up:
  • if ((Tabpos[0].y - NODESIZE)>=0)
  • Tabpos[0].y -= NODESIZE;
  • else
  • Lose ();
  • break;
  • case Down:
  • if ((Tabpos[0].y + NODESIZE)< screen->h)
  • Tabpos[0].y += NODESIZE;
  • else
  • Lose ();
  • break;
  • case Right:
  • if ((Tabpos[0].x + NODESIZE)< screen->w)
  • Tabpos[0].x += NODESIZE;
  • else
  • Lose ();
  • break;
  • case Left:
  • if ((Tabpos[0].x - NODESIZE)>= 0)
  • Tabpos[0].x -= NODESIZE;
  • else
  • Lose ();
  • break;
  • }
  • /*on vérifi si on a bouffé quelque chose, et si oui on ajoute un node*/
  • if ((Tabpos[0].x == ppuce.x)&&(Tabpos[0].y == ppuce.y))
  • AddNode ();
  • /*s'il le snake heurte sa queu, paffff lose :)*/
  • if (snakeColl()) Lose();
  • }
  • void SetPos (void){
  • /*application des modifications sur les positions des nodes de la queu du snake*/
  • int i;
  • for (i=(NodeCounter-1); i>0; i--){
  • Tabpos[i].x = Tabpos[i-1].x;
  • Tabpos[i].y = Tabpos[i-1].y;
  • }
  • }
  • void Show (void){
  • /*blit toutes les surfaces sur l'ecran principales avant rafraichissement*/
  • int i;
  • for (i=0; i<NodeCounter; i++)
  • SDL_BlitSurface (Table[i], NULL, screen, &Tabpos[i]);
  • SDL_BlitSurface (puce, NULL, screen, &ppuce);
  • }
  • void Quitter (void){
  • freeNodes ();
  • SDL_FreeSurface (puce);
  • SDL_Quit();
  • }
  • void PurgeScreen (void){
  • /*Destruction de l'interface en insérant une surface toute blanche*/
  • SDL_Rect p;
  • p.x = 0;
  • p.y = 0;
  • blank = SDL_CreateRGBSurface(SDL_HWSURFACE, screen->h, screen->w, 32, 0, 0, 0, 0);
  • SDL_FillRect (blank, NULL, SDL_MapRGB (blank->format, 255, 255, 255));
  • SDL_BlitSurface (blank, NULL, screen, &p);
  • SDL_FreeSurface (blank);
  • }
  • void SetPuce (){
  • /*insértion d'une puce dans le jeu*/
  • int genx, geny,
  • flag = 1,
  • cpt;
  • while (flag){
  • flag = 0;
  • genx = (rand() % (WINSIZE/10))*NODESIZE;
  • for (cpt=0; cpt<NodeCounter; cpt++)
  • if (genx == Tabpos[cpt].x){
  • flag = 1;
  • break;
  • }
  • }
  • flag = 1;
  • while (flag){
  • flag = 0;
  • geny = (rand() % (WINSIZE/10))*NODESIZE;
  • for (cpt=0; cpt<NodeCounter; cpt++)
  • if (geny == Tabpos[cpt].y){
  • flag = 1;
  • break;
  • }
  • }
  • puce = SDL_CreateRGBSurface(SDL_HWSURFACE, NODESIZE, NODESIZE, 32, 0, 0, 0, 0);
  • SDL_FillRect (puce, NULL, SDL_MapRGB (puce->format, 255, 0, 0));
  • ppuce.x = genx;
  • ppuce.y = geny;
  • SDL_BlitSurface (puce, NULL, screen, &ppuce);
  • }
  • Uint32 Anime_it (Uint32 interval, void *param){
  • /*fonction callback du timer, elle fait bougé le snakouille :p*/
  • Uint32 *t = (Uint32*)param;
  • SDL_Delay (*t);
  • MoveSnake ();
  • SetPos ();
  • PurgeScreen ();
  • Show ();
  • SDL_Flip (screen);
  • return interval;
  • }
  • void Lose (void){
  • /*bah si on a perdu on fais quelque chose ché po moi!*/
  • SDL_RemoveTimer(timer);
  • }
  • void freeNodes (void){
  • /*libération de la mémoire allouée pour les nodes*/
  • int i;
  • for (i=0; i<NodeCounter; i++)
  • SDL_FreeSurface (Table[i]);
  • }
  • void AddNode (void){
  • /*ajout d'un node au snake*/
  • NodeCounter++;
  • Table[NodeCounter-1] = SDL_CreateRGBSurface(SDL_HWSURFACE, NODESIZE, NODESIZE, 32, 0, 0, 0, 0);
  • SDL_FillRect (Table[NodeCounter-1], NULL, SDL_MapRGB (Table[NodeCounter-1]->format, 0, 255, 0));
  • SetPuce ();
  • }
  • int snakeColl (void){
  • /*retourne 1 i le snake heurte sa queu :p*/
  • int i,
  • cl = 0;
  • for (i=3; i<NodeCounter; i++)
  • if ((Tabpos[0].x == Tabpos[i].x)&&(Tabpos[0].y == Tabpos[i].y)){
  • cl = 1;
  • break;
  • }
  • return cl;
  • }
#include <stdlib.h>
#include <SDL/SDL.h>
#include <time.h>

#define N         500 /*taille maximale du snake*/
#define NODESIZE  10  /*largeur et hauteur d'une case*/
#define WINSIZE   400 /*largeur et hauteur de la fenêtre*/

/********************************* types **************************************/

typedef enum {Up, Down, Right, Left}TDirection; /*type de direction*/

/******************************************************************************/

/********************************* ecran **************************************/

SDL_Surface* screen = NULL; /*ecran principal*/
SDL_Surface* Table[N] = {NULL}; /*tableau des nodes du snake*/
SDL_Surface* blank; /*fond d'ecran*/
SDL_Surface* puce; /*puce à bouffer ^^*/

/******************************************************************************/

/********************************* positions **********************************/

SDL_Rect     Tabpos[N], /*tableau des positions des node du snake*/
             ppuce; /*position de la puce*/

/******************************************************************************/

/*********************************** Divers ***********************************/

int NodeCounter; /*représente le nombre de node actuel du snake*/

TDirection direction; /*Direction actuel du snake*/
SDL_TimerID timer; /*descripteur du timer*/

/******************************************************************************/

/************************* Prototypes des fonctions ***************************/

Uint32 Anime_it    (Uint32, void *);
int snakeColl      (void);

void Quitter      (void);
void SetPos       (void);
void MoveSnake    (void);
void Show         (void);
void PurgeScreen  (void);
void SetPuce      (void);
void Lose         (void);
void freeNodes    (void);
void AddNode      (void);

/******************************************************************************/

int main ( int argc, char** argv )
{

    Uint32 speed; /*vitesse du snake*/

    SDL_Event event;

    int done; /*vaiable de la boucle du jeu*/
    int i; /*variable de contrôle*/


     srand (time(NULL)); /*initialisation du générateur pseudo-aléatoire*/

            /*initialisation de la lib SDL*/
     i = SDL_Init (SDL_INIT_VIDEO|SDL_DOUBLEBUF| SDL_INIT_TIMER);
      if (i < 0){
        fprintf (stderr, "Erreur de chargement: %s", SDL_GetError());
          exit(EXIT_FAILURE);
          }
     atexit (Quitter);

     screen = SDL_SetVideoMode (WINSIZE, WINSIZE, 32, SDL_HWSURFACE);
      if (screen == NULL){
         fprintf (stderr, "J'arrive pas à appliquer le mode 640x480: %s", SDL_GetError ());
          exit (EXIT_FAILURE);
          }

       SDL_WM_SetCaption ("Simple Snake Game by Agent-G", NULL);

     /*Initialisations*/
         speed = 30;
         done = 1;
         NodeCounter = 10;
         direction = Right;

        Table[0] = SDL_CreateRGBSurface(SDL_HWSURFACE, NODESIZE, NODESIZE, 32, 0, 0, 0, 0);
        SDL_FillRect (Table[0], NULL, SDL_MapRGB (Table[0]->format, 0, 255, 0));
        Tabpos[0].x = screen->w/2;
        Tabpos[0].y = screen->h/2;

         for (i=1; i<NodeCounter; i++){
           Table[i] = SDL_CreateRGBSurface(SDL_HWSURFACE, NODESIZE, NODESIZE, 32, 0, 0, 0, 0);
           SDL_FillRect (Table[i], NULL, SDL_MapRGB (Table[i]->format, 0, 255, 0));
           Tabpos[i].x = Tabpos[i-1].x - NODESIZE;
           Tabpos[i].y = screen->h/2;
             }



     Show ();
     SDL_Flip (screen);

     timer = SDL_AddTimer(1, Anime_it, &speed);
     SetPuce ();
     while (done){

        SDL_WaitEvent (&event);

         switch (event.type){

             case SDL_QUIT:
                   done  = 0;
                   break;

              case SDL_KEYDOWN:
                     switch (event.key.keysym.sym){
                        case SDLK_UP:
                         if (direction != Down)
                           direction = Up;
                           break;
                        case SDLK_DOWN:
                         if (direction != Up)
                           direction = Down;
                           break;
                        case SDLK_RIGHT:
                         if (direction != Left)
                           direction = Right;
                           break;
                        case SDLK_LEFT:
                         if (direction != Right)
                           direction = Left;
                           break;
                        case SDLK_u: /*auguemente la vitesse*/
                          if ((speed-5)>0)
                            speed-=5;
                           break;
                        case SDLK_l:/*baisse la vitesse*/
                          if ((speed+5)<100)
                            speed+=5;
                           break;
                        case SDLK_ESCAPE:
                          done  = 0;
                          break;
                         }
                        break;
                 }/*SWITCH*/
          }/*WHILE*/


    return 0;
}




void MoveSnake (){
/*s'occupe de faire bouger le snake*/
     switch (direction){

        case Up:
         if ((Tabpos[0].y - NODESIZE)>=0)
           Tabpos[0].y -= NODESIZE;
          else
            Lose ();
          break;
        case Down:
         if ((Tabpos[0].y + NODESIZE)< screen->h)
           Tabpos[0].y += NODESIZE;
          else
            Lose ();
          break;
        case Right:
         if ((Tabpos[0].x + NODESIZE)< screen->w)
           Tabpos[0].x += NODESIZE;
          else
            Lose ();
          break;
        case Left:
         if ((Tabpos[0].x - NODESIZE)>= 0)
           Tabpos[0].x -= NODESIZE;
          else
            Lose ();
          break;
         }
   /*on vérifi si on a bouffé quelque chose, et si oui on ajoute un node*/
   if ((Tabpos[0].x == ppuce.x)&&(Tabpos[0].y == ppuce.y))
      AddNode ();
  /*s'il le snake heurte sa queu, paffff lose :)*/
   if (snakeColl()) Lose();

    }

void SetPos (void){
/*application des modifications sur les positions des nodes de la queu du snake*/
   int i;

    for (i=(NodeCounter-1); i>0; i--){
      Tabpos[i].x = Tabpos[i-1].x;
      Tabpos[i].y = Tabpos[i-1].y;
       }
    }

void Show (void){
/*blit toutes les surfaces sur l'ecran principales avant rafraichissement*/
   int i;

    for (i=0; i<NodeCounter; i++)
      SDL_BlitSurface (Table[i], NULL, screen, &Tabpos[i]);

      SDL_BlitSurface (puce, NULL, screen, &ppuce);
    }

void Quitter (void){

    freeNodes ();
    SDL_FreeSurface (puce);

   SDL_Quit();

    }

void PurgeScreen (void){
/*Destruction de l'interface en insérant une surface toute blanche*/
    SDL_Rect p;

     p.x = 0;
     p.y = 0;

     blank = SDL_CreateRGBSurface(SDL_HWSURFACE, screen->h, screen->w, 32, 0, 0, 0, 0);
     SDL_FillRect (blank, NULL, SDL_MapRGB (blank->format, 255, 255, 255));
     SDL_BlitSurface (blank, NULL, screen, &p);
     SDL_FreeSurface (blank);

    }


void SetPuce (){
/*insértion d'une puce dans le jeu*/
  int genx, geny,
      flag = 1,
      cpt;

    while (flag){
      flag = 0;

       genx = (rand() % (WINSIZE/10))*NODESIZE;
      for (cpt=0; cpt<NodeCounter; cpt++)
         if (genx == Tabpos[cpt].x){
           flag = 1;
            break;
           }
        }

    flag = 1;
    while (flag){
      flag = 0;

       geny = (rand() % (WINSIZE/10))*NODESIZE;
      for (cpt=0; cpt<NodeCounter; cpt++)
         if (geny == Tabpos[cpt].y){
           flag = 1;
            break;
           }
        }

        puce = SDL_CreateRGBSurface(SDL_HWSURFACE, NODESIZE, NODESIZE, 32, 0, 0, 0, 0);
        SDL_FillRect (puce, NULL, SDL_MapRGB (puce->format, 255, 0, 0));
        ppuce.x = genx;
        ppuce.y = geny;
        SDL_BlitSurface (puce, NULL, screen, &ppuce);
    }

Uint32 Anime_it (Uint32 interval, void *param){
/*fonction callback du timer, elle fait bougé le snakouille :p*/
    Uint32 *t = (Uint32*)param;

       SDL_Delay (*t);
       MoveSnake ();
       SetPos ();
       PurgeScreen ();
       Show ();
       SDL_Flip (screen);

   return interval;
    }

void Lose (void){
/*bah si on a perdu on fais quelque chose ché po moi!*/
  SDL_RemoveTimer(timer);
      }


void freeNodes (void){
/*libération de la mémoire allouée pour les nodes*/
   int i;

   for (i=0; i<NodeCounter; i++)
      SDL_FreeSurface (Table[i]);

    }

void AddNode (void){
/*ajout d'un node au snake*/
   NodeCounter++;

    Table[NodeCounter-1] = SDL_CreateRGBSurface(SDL_HWSURFACE, NODESIZE, NODESIZE, 32, 0, 0, 0, 0);
    SDL_FillRect (Table[NodeCounter-1], NULL, SDL_MapRGB (Table[NodeCounter-1]->format, 0, 255, 0));
    SetPuce ();
     }

int snakeColl (void){
/*retourne 1 i le snake heurte sa queu :p*/
   int i,
      cl = 0;

   for (i=3; i<NodeCounter; i++)
     if ((Tabpos[0].x == Tabpos[i].x)&&(Tabpos[0].y == Tabpos[i].y)){
       cl = 1;
       break;
      }

      return cl;
    }


 Conclusion

La SDL est une lib très puissante et portable, orientée multimédia et qui sert à créer des trucs vraiment intérressant donc si vous êtes passioné par le multimédia ne cherchez pas loin vous avez ce qu'il vous faut ;) "SDL PoWa ^^"
ps:
Pour auguementer la vitesse appuyez sur: "U"
Pour Baisser  la vitesse appuyez sur: "L"
Pour quitter: ECH

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • LINUXSDLappTélécharger ce fichier [Réservé aux membres club]13 203 octets
  • WINSDLapp.exe_Télécharger ce fichier [Réservé aux membres club]426 820 octets

Télécharger le zip


 Sources de la même categorie

Source avec Zip Source avec une capture JEU DES CARTES par eapaceinfo
PROGRAMME DE JEU DE MPT par KerizGarmm
Source avec Zip Source avec une capture JEUX SERPENT par antho974
Source avec Zip Source avec une capture PENDU EN SDL par Damsou91
Source avec Zip STATE MACHINE MODIFICATION MATH BUCKHAM par billybones79

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture LE SNAKE par BCedric
Source avec Zip Source avec une capture UN SNAKE FAIT EN DIRECT X par Pretender06
Source avec Zip Source avec une capture [C++][SDL] PETIT SNAKE par PierreAd
Source avec Zip SNAKE GRAPHIQUE ( 1/2 JOUEURS ET IA) par AmK
Source avec Zip Source avec une capture SNAKE 3D par cppdupdup34

Commentaires et avis

Commentaire de TheSin le 28/05/2006 14:17:44

sympa :-)
code suffisament commenté pour le comprendre, et utilisation de la SDL pour un snake ...
ça change :-)
je crois que y'en avait pas avec la SDL.

Commentaire de samirpaul le 11/07/2006 11:58:50

c bon !
bonne idée
mais il manque beaucoup, comme un compteur de points et un timer et aussi la commande pause .
mais bon , en total c pas mal

Commentaire de vivasola le 05/06/2007 16:44:01

tu peu m'expliquer cette operation:
for (i=1; i<NodeCounter; i++){
           Table[i] = SDL_CreateRGBSurface(SDL_HWSURFACE, NODESIZE, NODESIZE, 32, 0, 0, 0, 0);
           SDL_FillRect (Table[i], NULL, SDL_MapRGB (Table[i]->format, 0, 255, 0));
           Tabpos[i].x = Tabpos[i-1].x - NODESIZE;
           Tabpos[i].y = screen->h/2;

Commentaire de cyril6789 le 03/04/2008 13:27:03

cannot execute programme ...
Je sais pas pk !

Commentaire de Renfield le 03/04/2008 13:58:06 administrateur CS

pas très explicite, ton message, Cyril6789...

je viens de télécharger l'executable, après l'avoir renommé, j'ai eu l'erreur suivante:
"Cette application n'a pas pu démarrer car SDL.dll est introuvable. La réinstallation de cette application peut corriger ce problèma."

qui est un message très clair sur le probleme qui était le miens.

"était" ? oui, car un petit tour sur :
http://www.dll-files.com/dllindex/dll-files.shtml?sdl

et me voilà avec SDL.dll auprès du fichier WINSDLapp.exe.
la moralité ?

ben, elle fonctionne cette application ^^

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Snake tsssssssssss aidez moiiiiiiii [ par AmK ] Salut ,Je suis en train de coder un snake et la je crois avoir bien compris le principe de l'algo mais niveau code ça foire je sais pas pourquoi voila Serpent en sdl : petit probleme [ par tchern007 ] Deja bonjour a tous , je vous explique mon petit problemej ai fait un serpent avec sdl mais je voit pas comment faire pour faire en sorte de savoir qu Snake en Glut => [ par Toxiko ] Enfait on dois faire 3 interfaces differentes pour un snake (sous linux ;))g fait une partie "core" et une partie "librairie dynamique" en gros le mai jeu le serpent [ par Horfee ] bon je suis tout nouveau en C et j'ai un petit probleme :j'ai codé le jeu du serpent, assez rapidement mais j'ai un probleme : dès que j'appuie sur un serpent et mur . [ par ultima666 ] Bonjour je suis en train de faire un serpent.Mais voila G quelque problème je ne sais pas comment faire les mur( délémiter le terrain )genre un terrai pb avec WM_KEYDOWN [ par melkiorlenecrarque ] Bonjour!j'ai l'impression que les messages envoyés lorsque je presse une touche du clavier ne sont pas captés!par contre, quand je supprime les boutto serpent 2 joueurs tactique o tour par tour en poo [ par baalibono ] g besoin d'aide mais tous les source que g trouve ne sont pas vraiment des serpent programmé en orienté objet et moi j'aurait besoin d'aide parce que Problème de déplacement de serpent [ par triso1007 ] Salut, j'essaie de programmer un serpent, c'est que le début et je ne comprends pas, si j'appuie sur la touche s ou d, le serpent se déplace normaleme problème avec mon serpent [ par redrum261 ] Je ne comprens pas pourquoi le snake que j'ai programmé n'est pas en mouvement si vous aviez des suggestions, des conseils je suis à votre écoute. mer [SDL] Fenetre qui s' affiche et disparait aussitot [ par jonezy ] Bonjour Je debute en programmation, j'ai telechargé ce code qui est cencé etre un jeu de serpent avec SDL. Quand je l'execute la fenêtre apparaît et


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales