From cd8db6ca8ab66daf42b842f160a5b2ff6469224e Mon Sep 17 00:00:00 2001 From: Damien Appert Date: Sun, 12 Sep 2010 09:16:38 +0000 Subject: finition du jeu alien en multi en local jusqu'à 4 joueurs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///var/svn/2010-netlemmings/trunk@9 077b3477-7977-48bd-8428-443f22f7bfda --- jeu-test/aliens-1.0.2/aliens.c | 115 +++++++++++++++++++++++------------------ 1 file changed, 65 insertions(+), 50 deletions(-) (limited to 'jeu-test') diff --git a/jeu-test/aliens-1.0.2/aliens.c b/jeu-test/aliens-1.0.2/aliens.c index 05b6a0d..f08177f 100644 --- a/jeu-test/aliens-1.0.2/aliens.c +++ b/jeu-test/aliens-1.0.2/aliens.c @@ -54,7 +54,8 @@ #define KEY_IDX_RIGHT 1 #define KEY_IDX_FIRE 2 -int keymap[NUMBER_PLAYER][KEYS_COUNT] = {{SDLK_LEFT,SDLK_RIGHT,SDLK_UP},{SDLK_q,SDLK_d,SDLK_z}}; +int keymap[][KEYS_COUNT] = {{SDLK_q,SDLK_d,SDLK_z},{SDLK_LEFT,SDLK_RIGHT,SDLK_UP} +,{SDLK_f,SDLK_h,SDLK_t},{SDLK_j,SDLK_l,SDLK_i}}; typedef struct { int alive; @@ -69,7 +70,7 @@ SDL_Surface *background; /**/ object player[NUMBER_PLAYER]; int reloading[NUMBER_PLAYER]; -object shots[MAX_SHOTS]; +object shots[MAX_SHOTS][NUMBER_PLAYER]; /**/ object aliens[MAX_ALIENS]; /**/ @@ -118,7 +119,8 @@ SDL_Surface *LoadImage(char *datafile, int transparent) } int LoadData(void) { - int i; + int i,j; + SDL_Surface *firstShot; /* Load sounds */ #if defined(PLAY_MOD) || defined(PLAY_MID) @@ -139,7 +141,7 @@ int LoadData(void) /* Load graphics */ - //INFO : j'ai fai comme pour les autre objets + //INFO : j'ai fais comme pour les autres objets player[0].image = LoadImage(DATAFILE("player.gif"), 1); if ( player[0].image == NULL ) { printf("erreur creation player %c\n",0); @@ -149,12 +151,14 @@ int LoadData(void) player[i].image = player[0].image; } - shots[0].image = LoadImage(DATAFILE("shot.gif"), 0); - if ( shots[0].image == NULL ) { + firstShot = LoadImage(DATAFILE("shot.gif"), 0); + if ( firstShot == NULL ) { return(0); } - for ( i=1; iw-shots[i].image->w)/2; - shots[i].y = player[j].y - shots[i].image->h; - shots[i].alive = 1; + //FIXME : nombre de munition limite pour les 2 joueurs ? + shots[i][j].x = player[j].x + (player[j].image->w-shots[i][j].image->w)/2; + shots[i][j].y = player[j].y - shots[i][j].image->h; + shots[i][j].alive = 1; Mix_PlayChannel(SHOT_WAV, sounds[SHOT_WAV], 0); } } @@ -428,6 +436,7 @@ void RunGame(void) /* Move players */ for(i=0;i