From e4548364671313c6875ae1eff104166149fd3e2d Mon Sep 17 00:00:00 2001 From: suck5u <suck5u@etu.univ-lorraine.fr> Date: Sun, 3 Jan 2021 17:04:51 +0100 Subject: [PATCH] Optimisation et ajout affichage score --- code/display.c | 18 ++++++++++-------- code/enemy.c | 1 - code/main.c | 2 -- code/powerUp.c | 2 -- code/round_management.c | 27 ++++----------------------- code/round_management.h | 2 +- code/soldier.c | 2 +- code/world_data.c | 6 +++--- data/save.txt | 8 ++++---- 9 files changed, 23 insertions(+), 45 deletions(-) diff --git a/code/display.c b/code/display.c index 4e13615..2c59197 100644 --- a/code/display.c +++ b/code/display.c @@ -133,13 +133,6 @@ void refresh_graphics(SDL_Renderer *renderer, world_t *world,resources_t *resour load_texture_powerUp_type1(resources, renderer, &world->supplying.powerUP); } } - - - - if(world->gameover == 1) - { - destroy_textures(resources,world); - } char manche[3]; sprintf(manche,"%d",world->rounds.round_number); @@ -150,6 +143,12 @@ void refresh_graphics(SDL_Renderer *renderer, world_t *world,resources_t *resour char ammo[3]; sprintf(ammo,"%d",30-world->soldier.present_bullet); + char score[8]; + sprintf(score,"%d",world->score); + + char highScore[8]; + sprintf(highScore,"%d",world->highScore); + apply_text(renderer, 5 , 5 , 100 , 25 ,"Manche :", resources->font); apply_text(renderer, 115 , 5 , 20 , 25 ,manche, resources->font); apply_text(renderer, 5 , 30 , 100 , 25 ,"HP :", resources->font); @@ -157,6 +156,10 @@ void refresh_graphics(SDL_Renderer *renderer, world_t *world,resources_t *resour apply_text(renderer, 5 , 55 , 100 , 25 ,"Ammo :", resources->font); apply_text(renderer, 115 , 55 , 20 , 25 ,ammo, resources->font); apply_text(renderer, 140 , 55 , 20 , 25 ,"/30", resources->font); + apply_text(renderer, 5 , 80, 100, 25, "Score :", resources->font); + apply_text(renderer, 115 , 80, 20, 25, score, resources->font); + apply_text(renderer, 5 , 105 , 100 , 25 ,"Meilleur score :", resources->font); + apply_text(renderer, 115 , 105 , 20 , 25 ,highScore, resources->font); } @@ -245,7 +248,6 @@ void init_ressources(SDL_Renderer *renderer, resources_t *resources, world_t *wo resources->plane = charger_image_transparente("../resources/Plane.bmp", renderer, 255,0,255); resources->font = load_font("../resources/arial.ttf",14); - } diff --git a/code/enemy.c b/code/enemy.c index 002d3d9..269f47b 100644 --- a/code/enemy.c +++ b/code/enemy.c @@ -171,7 +171,6 @@ void enemy_dead(enemy_t *enemy,soldier_t *soldier, int *score) { set_visible(&enemy->powerUP.sprite); enemy->drop=1; - print_sprite(&enemy->powerUP.sprite); } } diff --git a/code/main.c b/code/main.c index be054d3..518ef34 100644 --- a/code/main.c +++ b/code/main.c @@ -50,8 +50,6 @@ int main(void) } t1 = t2; - - //Evenements clavier handle_events(&event,&world); diff --git a/code/powerUp.c b/code/powerUp.c index 6278ea4..940dbce 100644 --- a/code/powerUp.c +++ b/code/powerUp.c @@ -78,13 +78,11 @@ void soldier_touch_powerUP(powerUP_t *powerUP,soldier_t *soldier) void apply_effect(powerUP_t *powerUP,soldier_t *soldier,int drop){ if(powerUP->sprite.is_visible == 0 && powerUP->apply_effect == 0 && drop == 1){ - print_sprite(&soldier->sprite); if (powerUP->type == 0) { soldier->sprite.v = soldier->sprite.v + 10; }else{ soldier->sprite.hp = soldier->sprite.hp + 10; - print_sprite(&soldier->sprite); } powerUP->apply_effect = 1; } diff --git a/code/round_management.c b/code/round_management.c index cc38f8e..e0885fb 100644 --- a/code/round_management.c +++ b/code/round_management.c @@ -23,13 +23,11 @@ void initFirstRound(round_t *round, int nbEnemies, int incrementation, int round round->counter = 0; round->index_to_spawn = 0; round->is_new_round = 0; - //round->gameFinished = 0; round->enemies = (enemy_t*) malloc(round->number_enemies*sizeof(enemy_t)); for (int i = 0; i < round->number_enemies; i++) { init_enemy(&round->enemies[i]); } - printf("Manche : %d Ennemis : %d Incrementation : %d\n",round->round_number, round->number_enemies,round->incrementation); } //Actualiser qui se déplace @@ -53,44 +51,27 @@ void updateRound(round_t *round) void nextRound(round_t *round) { round->round_number++; - printf("Manche %d\n",round->round_number); round->number_enemies = round->number_enemies + round->incrementation; round->index_to_spawn = 0; round->counter = 0; round->is_new_round = 1; - printf("nb enemies %d\n",round->number_enemies); - /*for (int i = 0; i < round->number_enemies*4; i++) - { - printf("avant %f i : %d\n",round->enemies[i].sprite.x,i); - }*/ - - //free(round->enemies); createEnemies(round); - /*for (int i = 0; i < round->number_enemies; i++) - { - printf("apres %f i : %d\n",round->enemies[i].sprite.x,i); - }*/ } //Créer nbEnemies void createEnemies(round_t *round) { - //round->enemies = (enemy_t*) realloc(round->enemies,sizeof(enemy_t)*round->number_enemies); - + clearEnemies(round); enemy_t *tab = (enemy_t*) malloc(round->number_enemies*sizeof(enemy_t)); - free(round->enemies); - //round->enemies = NULL; round->enemies = tab; - //free(tab); - for (int i = 0; i < round->number_enemies; i++) { init_enemy(&round->enemies[i]); } + } -/*void clearEnemies(round_t *round) +void clearEnemies(round_t *round) { free(round->enemies); - round->enemies = NULL; -}*/ \ No newline at end of file +} \ No newline at end of file diff --git a/code/round_management.h b/code/round_management.h index 9a61f40..73552eb 100644 --- a/code/round_management.h +++ b/code/round_management.h @@ -28,6 +28,6 @@ void nextRound(round_t *round); void createEnemies(round_t *round); -//void clearEnemies(round_t *round); +void clearEnemies(round_t *round); #endif \ No newline at end of file diff --git a/code/soldier.c b/code/soldier.c index 5510594..c2bdd17 100644 --- a/code/soldier.c +++ b/code/soldier.c @@ -23,7 +23,7 @@ void init_soldier(soldier_t *soldier, int hp) soldier->DestSoldier.y = soldier->sprite.y; soldier->DestSoldier.w = SOLDIER_WIDTH; soldier->DestSoldier.h = SOLDIER_HEIGHT; - soldier->DestBullet = malloc(sizeof(SDL_Rect)*NB_BULLET); + soldier->DestBullet = (SDL_Rect*) malloc(sizeof(SDL_Rect)*NB_BULLET); soldier->time_bullet = TIME_BULLET; init_bullet(soldier); } diff --git a/code/world_data.c b/code/world_data.c index d70720e..059b72c 100644 --- a/code/world_data.c +++ b/code/world_data.c @@ -119,7 +119,6 @@ void refresh_data(world_t *world) world->rounds.enemies[i].DestEnemy.y = world->rounds.enemies[i].sprite.y; //Si l'ennemi touche le soldat //enemy_touch_soldier(&world->rounds.enemies[i],&world->soldier,&world->score); - //enemy_touch_soldier(&world->rounds.enemies[i],&world->soldier); enemy_dead(&world->rounds.enemies[i],&world->soldier,&world->score); } soldier_touch_powerUP(&world->rounds.enemies[i].powerUP,&world->soldier); @@ -222,8 +221,9 @@ void handle_events(SDL_Event *event,world_t *world) //Libère la mémoire du tableau DestBullet pour l'affichage free(world->soldier.DestBullet); //Libère le tableau d'ennemis - //clearEnemies(&world->rounds); - free(world->rounds.enemies); + clearEnemies(&world->rounds); + //free(world->rounds.enemies); + //world->rounds.enemies = NULL; world->gameover = 1; } diff --git a/data/save.txt b/data/save.txt index 5d1a620..d136571 100644 --- a/data/save.txt +++ b/data/save.txt @@ -1,10 +1,10 @@ /Vie du joueur au début -7 +30 /Nombre d'ennemis au début -21 +5 /Nombre d'ennemis en plus à chaque manche 1 /Numéro de la manche -33 +5 /Meilleur score -82 +136 -- GitLab