From b4b1c5761480c4b1e1e3c931db3d6f3f7884e1f7 Mon Sep 17 00:00:00 2001
From: belkhiritaha <belkhiri.taha53@gmail.com>
Date: Mon, 27 Jun 2022 10:03:48 +0200
Subject: [PATCH] ajout du squelette de base

---
 .../jeu_appren_par_renfo/Makefile             | 23 ++++++
 .../jeu_appren_par_renfo/fichier.txt          |  0
 .../jeu_appren_par_renfo/src/gest_event.c     | 42 +++++++++++
 .../jeu_appren_par_renfo/src/gest_event.h     | 10 +++
 .../jeu_appren_par_renfo/src/main.c           | 13 ++++
 .../jeu_appren_par_renfo/src/main.h           | 28 +++++++
 .../jeu_appren_par_renfo/src/render.c         | 75 +++++++++++++++++++
 .../jeu_appren_par_renfo/src/render.h         | 15 ++++
 8 files changed, 206 insertions(+)
 create mode 100644 travail_de_groupe/jeu_appren_par_renfo/Makefile
 delete mode 100644 travail_de_groupe/jeu_appren_par_renfo/fichier.txt
 create mode 100644 travail_de_groupe/jeu_appren_par_renfo/src/gest_event.c
 create mode 100644 travail_de_groupe/jeu_appren_par_renfo/src/gest_event.h
 create mode 100644 travail_de_groupe/jeu_appren_par_renfo/src/main.c
 create mode 100644 travail_de_groupe/jeu_appren_par_renfo/src/main.h
 create mode 100644 travail_de_groupe/jeu_appren_par_renfo/src/render.c
 create mode 100644 travail_de_groupe/jeu_appren_par_renfo/src/render.h

diff --git a/travail_de_groupe/jeu_appren_par_renfo/Makefile b/travail_de_groupe/jeu_appren_par_renfo/Makefile
new file mode 100644
index 0000000..8889fb4
--- /dev/null
+++ b/travail_de_groupe/jeu_appren_par_renfo/Makefile
@@ -0,0 +1,23 @@
+CC=gcc
+
+LDFLAG=$(shell sdl2-config --cflags --libs) -lm -lSDL2_ttf -D_REENTRANT -lSDL2_image -pthread
+CFLAG=-Wall $(shell sdl2-config --cflags --libs)
+
+EXEC=run
+SRC=$(wildcard src/*.c)
+OBJ=$(SRC:.c=.o)
+
+all:$(EXEC)
+
+$(EXEC):$(OBJ)
+	$(CC) -o $@ $^ $(LDFLAG)
+	mv $^ bin/
+
+%.o:%.c
+	$(CC) -o $@ -c $< $(CFLAG)
+
+.PHONY:clean 
+
+clean:
+	rm -rf bin/*.o
+	rm -rf $(EXEC) 
\ No newline at end of file
diff --git a/travail_de_groupe/jeu_appren_par_renfo/fichier.txt b/travail_de_groupe/jeu_appren_par_renfo/fichier.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/gest_event.c b/travail_de_groupe/jeu_appren_par_renfo/src/gest_event.c
new file mode 100644
index 0000000..d57aab5
--- /dev/null
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/gest_event.c
@@ -0,0 +1,42 @@
+#include "gest_event.h"
+
+
+void gestMenu(){
+    SDL_Event event;
+    while (SDL_PollEvent(&event)){
+            switch(event.type)
+            {   
+                case SDL_QUIT:
+                    running = 0;
+                    break;
+
+                case SDL_KEYUP:
+                    switch (event.key.keysym.sym)
+                    {
+                    case SDLK_ESCAPE:
+                        running = 0;
+                        continue;
+
+                    default:
+                        continue;
+                    }
+                    break;
+
+                default:
+                    continue;
+            }
+    }
+    SDL_Delay(5);
+}
+
+
+void *EventLoop(void *arg){
+    while(running){
+        switch(game_state){
+            case MENU : gestMenu();break;
+            //case GAME : gestGame();break;
+            default:printf("game state fault");break;
+        }
+    }
+    return NULL;
+} 
\ No newline at end of file
diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/gest_event.h b/travail_de_groupe/jeu_appren_par_renfo/src/gest_event.h
new file mode 100644
index 0000000..6b2a7ad
--- /dev/null
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/gest_event.h
@@ -0,0 +1,10 @@
+#ifndef _GEST_EVENT_H_
+#define _GEST_EVENT_H_
+
+
+#include "main.h"
+#include "render.h"
+
+void *EventLoop(void *arg);
+
+#endif 
\ No newline at end of file
diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/main.c b/travail_de_groupe/jeu_appren_par_renfo/src/main.c
new file mode 100644
index 0000000..f75b638
--- /dev/null
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/main.c
@@ -0,0 +1,13 @@
+#include "main.h"
+
+int running;
+int game_state;
+
+
+int main(){
+    running = 1;
+    game_state = MENU;
+
+    MainLoop();
+
+} 
\ No newline at end of file
diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/main.h b/travail_de_groupe/jeu_appren_par_renfo/src/main.h
new file mode 100644
index 0000000..eb08e38
--- /dev/null
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/main.h
@@ -0,0 +1,28 @@
+#ifndef _MAIN_HEADER_
+#define _MAIN_HEADER_
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+
+#include <SDL2/SDL.h>
+#include <SDL2/SDL_image.h>
+#include <SDL2/SDL_ttf.h>
+
+#include <pthread.h>
+
+#include "render.h"
+#include "gest_event.h"
+
+
+#define MENU 0
+#define GAME 1
+
+extern int running;
+extern int game_state;
+
+
+#endif 
\ No newline at end of file
diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/render.c b/travail_de_groupe/jeu_appren_par_renfo/src/render.c
new file mode 100644
index 0000000..b0f7d94
--- /dev/null
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/render.c
@@ -0,0 +1,75 @@
+#include "render.h"
+
+SDL_Window *window;
+SDL_Renderer *renderer;
+
+TTF_Font *RobotoFont;
+
+void CreateWindow(){
+    SDL_DisplayMode ScreenDimension;
+
+    if (SDL_Init(SDL_INIT_VIDEO) != 0){
+        printf("Couldn't create window.");
+        exit(EXIT_FAILURE);
+    }
+
+    SDL_GetCurrentDisplayMode(0, &ScreenDimension);
+
+    window = SDL_CreateWindow("Game Of Life", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, ScreenDimension.w, ScreenDimension.h, SDL_WINDOW_INPUT_GRABBED | SDL_WINDOW_SHOWN | SDL_WINDOW_FULLSCREEN_DESKTOP);
+
+    if (window == NULL){
+        printf("Couldn't create window");
+        exit(EXIT_FAILURE);
+    }
+
+    renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_TARGETTEXTURE | SDL_RENDERER_PRESENTVSYNC);
+
+    if (renderer == NULL){
+        printf("Couldn't create renderer.");
+        exit(EXIT_FAILURE);
+    }
+
+    if (TTF_Init() == -1)
+    {
+        exit(EXIT_FAILURE);
+    }
+
+    RobotoFont = TTF_OpenFont("Res/Roboto-Black.ttf", 50);  
+
+}
+
+
+void MainLoop(){
+    CreateWindow();
+
+    unsigned int a = SDL_GetTicks();
+    unsigned int b = SDL_GetTicks();
+    double delta = 0;
+
+    pthread_t eventThread;
+    if (pthread_create(&eventThread, NULL, EventLoop, NULL) != 0){
+        printf("Couldn't create thread.");
+        exit(EXIT_FAILURE);
+    }
+
+    while (running){
+        a = SDL_GetTicks();
+        delta = (a - b) / 1000.0;
+        if (delta > 1/FPS_TO_GET){
+            b = a;
+            switch (game_state){
+                case MENU:
+                    //Menu();
+                    break;
+                case GAME:
+                    //Game();
+                    break;
+            }
+        }
+        else {
+            // fait dormir le thread pour garder des ressources
+            usleep(1000 * (1/FPS_TO_GET - delta));
+        }
+
+    }
+} 
\ No newline at end of file
diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/render.h b/travail_de_groupe/jeu_appren_par_renfo/src/render.h
new file mode 100644
index 0000000..75f94e3
--- /dev/null
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/render.h
@@ -0,0 +1,15 @@
+#ifndef _RENDER_H_
+#define _RENDER_H_
+
+#include "main.h"
+#include "gest_event.h"
+
+#define FPS_TO_GET 60
+
+extern SDL_Window *window;
+extern SDL_Renderer *renderer;
+
+
+void MainLoop();
+
+#endif 
\ No newline at end of file
-- 
GitLab