From 6fb83aa27cb9f3cc9ef9458aaeea45a6ad4e42fc Mon Sep 17 00:00:00 2001 From: belkhiritaha <belkhiri.taha53@gmail.com> Date: Thu, 30 Jun 2022 16:22:03 +0200 Subject: [PATCH] gameplay un peu mieux --- .../jeu_appren_par_renfo/src/ball.c | 4 +++ .../jeu_appren_par_renfo/src/ennemy.c | 27 ++++++++++++++----- .../jeu_appren_par_renfo/src/gest_event.c | 3 ++- .../jeu_appren_par_renfo/src/player.c | 8 +++--- .../jeu_appren_par_renfo/src/player.h | 3 ++- .../jeu_appren_par_renfo/src/render.c | 2 +- 6 files changed, 35 insertions(+), 12 deletions(-) diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/ball.c b/travail_de_groupe/jeu_appren_par_renfo/src/ball.c index 21981da..9c3acb0 100644 --- a/travail_de_groupe/jeu_appren_par_renfo/src/ball.c +++ b/travail_de_groupe/jeu_appren_par_renfo/src/ball.c @@ -136,5 +136,9 @@ void updateBall() // landingPoint est déjà / BLOCK_SIZE de base ball.z = lagrangeInterpolation(ball.x / BLOCK_SIZE, lastHitPoint[0] / BLOCK_SIZE, lastHitPoint[1] / BLOCK_SIZE, 15, 2 * player.h / BLOCK_SIZE, landingPoint[0], 0); } + if (ball.z < 0) + { + initBall(); + } } diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/ennemy.c b/travail_de_groupe/jeu_appren_par_renfo/src/ennemy.c index 97c02fc..1a1d3f9 100644 --- a/travail_de_groupe/jeu_appren_par_renfo/src/ennemy.c +++ b/travail_de_groupe/jeu_appren_par_renfo/src/ennemy.c @@ -90,9 +90,16 @@ void manageEnnemyMovement() } } -void generateLandingPointEnnemy(){ - landingPoint[0] = rand() % ((MAP_WIDTH/2)); - landingPoint[1] = rand() % (MAP_HEIGHT); +int * generateLandingPointEnnemy(){ + int *landingPoint = malloc(sizeof(int) * 2); + + int randomPointX = rand() % ((MAP_WIDTH/2)); + + landingPoint[0] = randomPointX ; + landingPoint[1] = 0; + landingPointIsFind = 1; + + return landingPoint; } void ennemyHitBall(){ @@ -101,6 +108,10 @@ void ennemyHitBall(){ if (ball.isTravelingTo == AI) { + if(landingPointIsFind == 0){ + freeIntList(landingPoint); + landingPoint = generateLandingPointEnnemy(); + } ball.isTravelingTo = PLAYER; ball.angle = ennemy.angle; ball.speed = HIT_FORCE; @@ -108,13 +119,17 @@ void ennemyHitBall(){ lastHitPoint[0] = ball.x; lastHitPoint[1] = player.h; - printf("new lastHitPoint : %d %d\n", lastHitPoint[0], lastHitPoint[1]); - generateLandingPointEnnemy(); + printf("ennemy new lastHitPoint : %d %d\n", lastHitPoint[0]/BLOCK_SIZE, lastHitPoint[1]/BLOCK_SIZE); + + printf("ennemy new landingPoint : %d %d\n", landingPoint[0]/BLOCK_SIZE, landingPoint[1]/BLOCK_SIZE); } } } void manageEnnemy(){ - manageEnnemyMovement(); + if (SDL_GetTicks() % 1000 < 100) + { + manageEnnemyMovement(); + } ennemyHitBall(); } \ No newline at end of file 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 index abe4bb2..7e2656a 100644 --- a/travail_de_groupe/jeu_appren_par_renfo/src/gest_event.c +++ b/travail_de_groupe/jeu_appren_par_renfo/src/gest_event.c @@ -114,11 +114,12 @@ void gestGame() { showHub = 0; } + break; case SDLK_b: initBall(); landingPointIsFind = 0; - continue; + break; default: break; diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/player.c b/travail_de_groupe/jeu_appren_par_renfo/src/player.c index 6523e57..b6d289b 100644 --- a/travail_de_groupe/jeu_appren_par_renfo/src/player.c +++ b/travail_de_groupe/jeu_appren_par_renfo/src/player.c @@ -33,13 +33,11 @@ void initPlayer() int *generateLandingPoint(int rxWall) { int *landingPoint = malloc(sizeof(int) * 2); - srand(time(NULL)); int randomPointX = MAP_WIDTH/2 + 1 + rand()%(rxWall/BLOCK_SIZE - (MAP_WIDTH/2)); - int randomPointY = -1; landingPoint[0] = randomPointX ; - landingPoint[1] = randomPointY / BLOCK_SIZE; + landingPoint[1] = 0; landingPointIsFind = 1; return landingPoint; @@ -94,6 +92,10 @@ void hitBall() ball.z = player.h; ball.isHit = 1; ball.isTravelingTo = AI; + + printf("ennemy new lastHitPoint : %d %d\n", lastHitPoint[0]/BLOCK_SIZE, lastHitPoint[1]/BLOCK_SIZE); + + printf("ennemy new landingPoint : %d %d\n", landingPoint[0]/BLOCK_SIZE, landingPoint[1]/BLOCK_SIZE); } // printf("valid hit\n"); } diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/player.h b/travail_de_groupe/jeu_appren_par_renfo/src/player.h index af0ca97..ca036f8 100644 --- a/travail_de_groupe/jeu_appren_par_renfo/src/player.h +++ b/travail_de_groupe/jeu_appren_par_renfo/src/player.h @@ -11,7 +11,7 @@ #define ENTITIES_RIGHT 3 #define HIT_RANGE 2 -#define HIT_FORCE 10 +#define HIT_FORCE 2 #define MOVEMENT_SPEED 10 typedef struct player @@ -43,5 +43,6 @@ extern int landingPointIsFind; void initPlayer(); void managePlayer(); +void freeIntList(int *list); #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 index 0f71a7a..02a5f7c 100644 --- a/travail_de_groupe/jeu_appren_par_renfo/src/render.c +++ b/travail_de_groupe/jeu_appren_par_renfo/src/render.c @@ -12,7 +12,7 @@ SDL_Rect sky; SDL_Rect ground; SDL_Rect racket; -int showHub = 0; +int showHub = 1; SDL_Texture *netTexture; SDL_Texture *netEdgeLeftTexture; -- GitLab