diff --git a/travail_de_groupe/chef_oeuvre/Res/grass.png b/travail_de_groupe/chef_oeuvre/Res/grass.png new file mode 100755 index 0000000000000000000000000000000000000000..3f95575121fe0814df1dd404a32a9984de7be841 Binary files /dev/null and b/travail_de_groupe/chef_oeuvre/Res/grass.png differ diff --git a/travail_de_groupe/chef_oeuvre/Res/tree.png b/travail_de_groupe/chef_oeuvre/Res/tree.png new file mode 100755 index 0000000000000000000000000000000000000000..4d92c05b4af9e8bdf2c0d855326784b6eebcc846 Binary files /dev/null and b/travail_de_groupe/chef_oeuvre/Res/tree.png differ diff --git a/travail_de_groupe/chef_oeuvre/map.txt b/travail_de_groupe/chef_oeuvre/map.txt new file mode 100644 index 0000000000000000000000000000000000000000..b0f58501d0a50ef7e8b4d80d6cd5f77d734046da --- /dev/null +++ b/travail_de_groupe/chef_oeuvre/map.txt @@ -0,0 +1,20 @@ +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 \ No newline at end of file diff --git a/travail_de_groupe/chef_oeuvre/run b/travail_de_groupe/chef_oeuvre/run index 554b566ca5360f14ce06a413e140f4a4e9f01449..361f55c337fa28a4b4ba31286731add205f453ce 100755 Binary files a/travail_de_groupe/chef_oeuvre/run and b/travail_de_groupe/chef_oeuvre/run differ diff --git a/travail_de_groupe/chef_oeuvre/src/gest_event.c b/travail_de_groupe/chef_oeuvre/src/gest_event.c index d57aab50b03e5c9634d50d5ce73e9cf84fc87b70..aefb6558ba9509d558cb62a57d485f09e56fa6f2 100644 --- a/travail_de_groupe/chef_oeuvre/src/gest_event.c +++ b/travail_de_groupe/chef_oeuvre/src/gest_event.c @@ -34,7 +34,7 @@ void *EventLoop(void *arg){ while(running){ switch(game_state){ case MENU : gestMenu();break; - //case GAME : gestGame();break; + case GAME : gestMenu();break; default:printf("game state fault");break; } } diff --git a/travail_de_groupe/chef_oeuvre/src/main.c b/travail_de_groupe/chef_oeuvre/src/main.c index 8667568e52ad38e643c83f3895d9476c2627b3e1..50d977d8afd79ca4d867f8e8aefe3b30d31e7af6 100644 --- a/travail_de_groupe/chef_oeuvre/src/main.c +++ b/travail_de_groupe/chef_oeuvre/src/main.c @@ -7,6 +7,7 @@ int game_state; int main(){ running = 1; game_state = GAME; + readMapFromFile("map.txt"); MainLoop(); diff --git a/travail_de_groupe/chef_oeuvre/src/main.h b/travail_de_groupe/chef_oeuvre/src/main.h index eb08e389951121f3d8efafe7a7b22f11dae367fe..884eef44162b3dc78604ec80e8ea9aaf792f5515 100644 --- a/travail_de_groupe/chef_oeuvre/src/main.h +++ b/travail_de_groupe/chef_oeuvre/src/main.h @@ -16,6 +16,7 @@ #include "render.h" #include "gest_event.h" +#include "map.h" #define MENU 0 diff --git a/travail_de_groupe/chef_oeuvre/src/map.c b/travail_de_groupe/chef_oeuvre/src/map.c new file mode 100644 index 0000000000000000000000000000000000000000..120461b8009a93fd238335bd47a124a0757f35f6 --- /dev/null +++ b/travail_de_groupe/chef_oeuvre/src/map.c @@ -0,0 +1,19 @@ +#include "map.h" + +int map[MAPSIZE][MAPSIZE]; + +void readMapFromFile(char * filename){ + FILE * fp; + int i, j; + fp = fopen(filename, "r"); + if(fp == NULL){ + printf("Error opening file\n"); + exit(1); + } + for(i = 0; i < MAPSIZE; i++){ + for(j = 0; j < MAPSIZE; j++){ + fscanf(fp, "%d", &map[i][j]); + } + } + fclose(fp); +} \ No newline at end of file diff --git a/travail_de_groupe/chef_oeuvre/src/map.h b/travail_de_groupe/chef_oeuvre/src/map.h new file mode 100644 index 0000000000000000000000000000000000000000..f6b0c73635f72839af1321e38deaee3bb3249b63 --- /dev/null +++ b/travail_de_groupe/chef_oeuvre/src/map.h @@ -0,0 +1,14 @@ +#ifndef MAP_HEADER_ +#define MAP_HEADER_ + +#include "main.h" + +#define MAPSIZE 20 + + + +extern int map[MAPSIZE][MAPSIZE]; + +void readMapFromFile(char * filename); + +#endif \ No newline at end of file diff --git a/travail_de_groupe/chef_oeuvre/src/render.c b/travail_de_groupe/chef_oeuvre/src/render.c index b0f7d94e2fee0692bb61ab8895cbf41e3a4b51b4..3479a3fa49a80b15c84e4e6d15e1a91494c766c7 100644 --- a/travail_de_groupe/chef_oeuvre/src/render.c +++ b/travail_de_groupe/chef_oeuvre/src/render.c @@ -4,9 +4,15 @@ SDL_Window *window; SDL_Renderer *renderer; TTF_Font *RobotoFont; +SDL_DisplayMode ScreenDimension; + +SDL_Surface * grassSurface; +SDL_Texture * grassTexture; + +SDL_Surface * treeSurface; +SDL_Texture * treeTexture; void CreateWindow(){ - SDL_DisplayMode ScreenDimension; if (SDL_Init(SDL_INIT_VIDEO) != 0){ printf("Couldn't create window."); @@ -38,10 +44,44 @@ void CreateWindow(){ } +void drawMap(){ + int i, j; + SDL_Rect rect; + rect.h = CELLSIZE; + rect.w = CELLSIZE; + rect.x = (ScreenDimension.w - (MAPSIZE * CELLSIZE)) / 2; // centers the drawing + rect.y = 0; + for(i = 0; i < MAPSIZE; i++){ + for(j = 0; j < MAPSIZE; j++){ + SDL_RenderCopy(renderer, grassTexture, NULL, &rect); + if(map[i][j] == 1){ + SDL_RenderCopy(renderer, treeTexture, NULL, &rect); + } + rect.x += CELLSIZE; + } + rect.x = (ScreenDimension.w - (MAPSIZE * CELLSIZE)) / 2; + rect.y += CELLSIZE; + } +} + +void drawGame(){ + SDL_RenderClear(renderer); + drawMap(); + SDL_RenderPresent(renderer); +} void MainLoop(){ CreateWindow(); + grassSurface = IMG_Load("Res/grass.png"); + grassTexture = SDL_CreateTextureFromSurface(renderer, grassSurface); + + treeSurface = IMG_Load("Res/tree.png"); + treeTexture = SDL_CreateTextureFromSurface(renderer, treeSurface); + + SDL_FreeSurface(grassSurface); + SDL_FreeSurface(treeSurface); + unsigned int a = SDL_GetTicks(); unsigned int b = SDL_GetTicks(); double delta = 0; @@ -62,7 +102,7 @@ void MainLoop(){ //Menu(); break; case GAME: - //Game(); + drawGame(); break; } } diff --git a/travail_de_groupe/chef_oeuvre/src/render.h b/travail_de_groupe/chef_oeuvre/src/render.h index 75f94e37b205ac0527e22d0a41fdef98e84dc682..4a44e61a82f5212317ff2966cbd6cd19b9084b7f 100644 --- a/travail_de_groupe/chef_oeuvre/src/render.h +++ b/travail_de_groupe/chef_oeuvre/src/render.h @@ -5,6 +5,7 @@ #include "gest_event.h" #define FPS_TO_GET 60 +#define CELLSIZE (ScreenDimension.h / MAPSIZE) extern SDL_Window *window; extern SDL_Renderer *renderer;