From fc3a09036bb4ef42bb93399212fbb4345e21954f Mon Sep 17 00:00:00 2001 From: Anselme Date: Wed, 14 Jan 2015 00:29:25 +0100 Subject: [PATCH] made some changes in the input --- main.c | 94 ++++++++++++++++++++++++++++++++++++++++++++-------------- main.h | 12 ++++---- 2 files changed, 76 insertions(+), 30 deletions(-) diff --git a/main.c b/main.c index bfbf17b..14d9644 100755 --- a/main.c +++ b/main.c @@ -6,6 +6,7 @@ #include #include #include +#include typedef struct{ t_dude dude1; @@ -19,7 +20,7 @@ t_action orange_update(void* my_info, void* com_data, int my_id); int get_purple_size(); int get_orange_size(); -void initWorld(){ +void initWorld(int width, int height){ int i; // allocations @@ -44,17 +45,17 @@ void initWorld(){ teams[i].spawn_food = 10; teams[i].spawn_count = 0; } - map = (t_pixel**)malloc(sizeof(t_pixel*)*WIDTH); - for(i=0; iformat, 255, 255, 255)); if (SDL_Init(SDL_INIT_VIDEO) == -1) @@ -193,28 +197,72 @@ void initSDL() } } -int MAIN( int argc, char** argv ) +int MAIN { - Uint8 *keystate = SDL_GetKeyState(NULL); + SDL_Event event; + int i; int over = 0; - Uint32 temps; + int wait_time = 100; + int fullscreen = 0; + int width = DEFAULT_WIDTH; + int height = DEFAULT_HEIGHT; - printf("Starting Pixel Wars on %s\n", OS); - initSDL(); - initWorld(); + #ifndef _WIN32 + argv++; + while(argc > 1){ // pas initialisé sur windows + printf("%s\n", argv[0]); + switch(argv[0][0]){ + case 'f' : + fullscreen = 1; + break; + case 't' : + wait_time = atoi(argv[0]+2); + break; + case 'w' : + width = atoi(argv[0]+2); + break; + case 'h' : + height = atoi(argv[0]+2); + break; + default : + break; + } + argv++; + } + #endif + + initSDL(width, height, fullscreen); + initWorld(width, height); SDL_Flip(img); - printf("Launching simulation... press ESCAPE to stop.\n"); + printf("Launching simulation...\n"); - while (!keystate[SDLK_ESCAPE] && !over){ - temps = SDL_GetTicks(); - SDL_PumpEvents(); - int i; + while (!over){ + while(SDL_PollEvent(&event)){ + switch (event.type){ + case SDL_KEYDOWN: + switch(event.key.keysym.sym) { + case SDLK_ESCAPE : + over = 1; + break; + default : + break; + } + break; + case SDL_QUIT: + over = 1; + break; + default : + break; + } + } + spawnDudes(); for(i=0; i #ifdef _WIN32 -#define MAIN WinMain -#define OS "Windows" +#include +#define MAIN APIENTRY WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) #else -#define MAIN main -#define OS "Linux" +#define MAIN main(int argc, char** argv) #endif -#define MAX_FPS 4 #define MAX_DUDES 50 -#define WIDTH 400 -#define HEIGHT 250 +#define DEFAULT_WIDTH 400 +#define DEFAULT_HEIGHT 250 // Teams enum{