From 52d06611efb4e768a59ab03f19fb88b318254b60 Mon Sep 17 00:00:00 2001 From: suck5u <suck5u@etu.univ-lorraine.fr> Date: Sat, 2 Jan 2021 16:11:00 +0100 Subject: [PATCH] =?UTF-8?q?Impl=C3=A9mentation=20sprites=20ennemis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/display.c | 58 ++++++++++++++++++++++++++++++++++++----- code/enemy.c | 35 +++++++++++++------------ code/round_management.c | 2 +- data/save.txt | 2 +- 4 files changed, 72 insertions(+), 25 deletions(-) diff --git a/code/display.c b/code/display.c index 3be7788..79f924d 100644 --- a/code/display.c +++ b/code/display.c @@ -102,18 +102,20 @@ void refresh_graphics(SDL_Renderer *renderer, world_t *world,resources_t *resour if (world->rounds.enemies[i].sprite.is_visible == 1) { - if(world->rounds.enemies[i].direction == 1 && world->rounds.enemies[i].isLookingLeft == 1) + /*if(world->rounds.enemies[i].direction == 1 && world->rounds.enemies[i].isLookingLeft == 1 && world->rounds.enemies[i].isLookingRight == 0) { - rotate_right(renderer, world, resources->enemies[i],i); + rotate_left(renderer, world, resources->enemies[i],i); + world->rounds.enemies[i].isLookingLeft = 0; world->rounds.enemies[i].isLookingRight = 1; } - else if (world->rounds.enemies[i].direction == -1 && world->rounds.enemies[i].isLookingRight == 1) + else if (world->rounds.enemies[i].direction == -1 && world->rounds.enemies[i].isLookingRight == 1 && world->rounds.enemies[i].isLookingLeft == 0) { + //rotate_right(renderer, world, resources->enemies[i],i); rotate_left(renderer, world, resources->enemies[i],i); world->rounds.enemies[i].isLookingLeft = 1; world->rounds.enemies[i].isLookingRight = 0; - } + }*/ load_texture_enemies(resources, renderer, world, i); } } @@ -221,7 +223,27 @@ void init_enemies_ressources(SDL_Renderer *renderer, resources_t *resources, wor resources->enemies = (SDL_Texture**) calloc(world->rounds.number_enemies,sizeof(SDL_Texture*)); for (int i = 0; i < world->rounds.number_enemies; i++) { - resources->enemies[i] = charger_image_transparente("../resources/Player/Right/IdleRight.bmp", renderer, 255,0,255); + if(world->rounds.enemies[i].type == 1 || world->rounds.enemies[i].type == 4) + { + if(world->rounds.enemies[i].direction == 1) + resources->enemies[i] = charger_image_transparente("../resources/SpriteZombie/Type1/1-Type1D.bmp", renderer, 255,0,255); + else + resources->enemies[i] = charger_image_transparente("../resources/SpriteZombie/Type1/1-Type1G.bmp", renderer, 255,0,255); + } + else if(world->rounds.enemies[i].type == 2) + { + if(world->rounds.enemies[i].direction == 1) + resources->enemies[i] = charger_image_transparente("../resources/SpriteZombie/Type2/1-Type2D.bmp", renderer, 255,0,255); + else + resources->enemies[i] = charger_image_transparente("../resources/SpriteZombie/Type2/1-Type2G.bmp", renderer, 255,0,255); + } + else if(world->rounds.enemies[i].type == 3) + { + if(world->rounds.enemies[i].direction == 1) + resources->enemies[i] = charger_image_transparente("../resources/SpriteZombie/Type3/1-Type3D.bmp", renderer, 255,0,255); + else + resources->enemies[i] = charger_image_transparente("../resources/SpriteZombie/Type3/1-Type3G.bmp", renderer, 255,0,255); + } } } @@ -235,8 +257,30 @@ void realloc_enemies_ressources(SDL_Renderer *renderer, resources_t *resources, for (int i = 0; i < world->rounds.number_enemies; i++) { - resources->enemies[i] = charger_image_transparente("../resources/Player/Right/IdleRight.bmp", renderer, 255,0,255); - } + if(world->rounds.enemies[i].type == 1 || world->rounds.enemies[i].type == 4) + { + if(world->rounds.enemies[i].direction == 1) + resources->enemies[i] = charger_image_transparente("../resources/SpriteZombie/Type1/1-Type1D.bmp", renderer, 255,0,255); + else + resources->enemies[i] = charger_image_transparente("../resources/SpriteZombie/Type1/1-Type1G.bmp", renderer, 255,0,255); + } + else if(world->rounds.enemies[i].type == 2) + { + + if(world->rounds.enemies[i].direction == 1) + resources->enemies[i] = charger_image_transparente("../resources/SpriteZombie/Type2/1-Type2D.bmp", renderer, 255,0,255); + else + resources->enemies[i] = charger_image_transparente("../resources/SpriteZombie/Type2/1-Type2G.bmp", renderer, 255,0,255); + } + else if(world->rounds.enemies[i].type == 3) + { + if(world->rounds.enemies[i].direction == 1) + resources->enemies[i] = charger_image_transparente("../resources/SpriteZombie/Type3/1-Type3D.bmp", renderer, 255,0,255); + else + resources->enemies[i] = charger_image_transparente("../resources/SpriteZombie/Type3/1-Type3G.bmp", renderer, 255,0,255); + } + + } } void clear_enemies_ressources(resources_t *resources,int nbEnemies) diff --git a/code/enemy.c b/code/enemy.c index 09c2c05..99652f1 100644 --- a/code/enemy.c +++ b/code/enemy.c @@ -32,6 +32,8 @@ void init_enemy(enemy_t *enemy) } enemy->is_moving = 0; enemy->drop = 0; + enemy->isLookingRight = 1; + enemy->isLookingLeft = 0; } @@ -42,13 +44,13 @@ void init_enemyType1(enemy_t *enemy) { init_sprite(&enemy->sprite, SCREEN_WIDTH+75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT, ENEMY_SPEED, 1); enemy->direction = -1; - enemy->isLookingRight = 0; - enemy->isLookingLeft = 1; + /*enemy->isLookingRight = 1; + enemy->isLookingLeft = 0;*/ }else{ init_sprite(&enemy->sprite, -75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT, ENEMY_SPEED, 1); enemy->direction = 1; - enemy->isLookingRight = 1; - enemy->isLookingLeft = 0; + /*enemy->isLookingRight = 1; + enemy->isLookingLeft = 0;*/ } enemy->type = 1; enemy->DestEnemy.x = enemy->sprite.x; @@ -64,13 +66,14 @@ void init_enemyType2(enemy_t *enemy) { init_sprite(&enemy->sprite, SCREEN_WIDTH+75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT, ENEMY_T2_SPEED, 2); enemy->direction = -1; - enemy->isLookingRight = 0; - enemy->isLookingLeft = 1; + + /*enemy->isLookingRight = 1; + enemy->isLookingLeft = 0;*/ }else{ init_sprite(&enemy->sprite, -75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT,ENEMY_T2_SPEED, 2); enemy->direction = 1; - enemy->isLookingRight = 1; - enemy->isLookingLeft = 0; + /*enemy->isLookingRight = 1; + enemy->isLookingLeft = 0;*/ } enemy->type = 2; enemy->DestEnemy.x = enemy->sprite.x; @@ -86,13 +89,13 @@ void init_enemyType3(enemy_t *enemy) { init_sprite(&enemy->sprite, SCREEN_WIDTH+75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT, ENEMY_T3_SPEED, 1); enemy->direction = -1; - enemy->isLookingRight = 0; - enemy->isLookingLeft = 1; + /*enemy->isLookingRight = 1; + enemy->isLookingLeft = 0;*/ }else{ init_sprite(&enemy->sprite, -75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT,ENEMY_T3_SPEED, 1); enemy->direction = 1; - enemy->isLookingRight = 1; - enemy->isLookingLeft = 0; + /*enemy->isLookingRight = 1; + enemy->isLookingLeft = 0;*/ } enemy->type = 3; enemy->DestEnemy.x = enemy->sprite.x; @@ -108,13 +111,13 @@ void init_enemyType4(enemy_t *enemy) { init_sprite(&enemy->sprite, SCREEN_WIDTH+75, SCREEN_HEIGHT-ENEMY_T4_HEIGHT*2-40, ENEMY_T4_WIDTH, ENEMY_T4_HEIGHT, 1, 1); enemy->direction = -1; - enemy->isLookingRight = 0; - enemy->isLookingLeft = 1; + /*enemy->isLookingRight = 1; + enemy->isLookingLeft = 0;*/ }else{ init_sprite(&enemy->sprite, -75, SCREEN_HEIGHT-ENEMY_T4_HEIGHT*2-40, ENEMY_T4_WIDTH, ENEMY_T4_HEIGHT,1, 1); enemy->direction = 1; - enemy->isLookingRight = 1; - enemy->isLookingLeft = 0; + /*enemy->isLookingRight = 1; + enemy->isLookingLeft = 0;*/ } enemy->type = 4; enemy->DestEnemy.x = enemy->sprite.x; diff --git a/code/round_management.c b/code/round_management.c index cd5d04d..9be99ea 100644 --- a/code/round_management.c +++ b/code/round_management.c @@ -44,7 +44,7 @@ void updateRound(round_t *round) } } round->counter++; - if(round->counter == 50) + if(round->counter == 500) { round->counter = 0; } diff --git a/data/save.txt b/data/save.txt index 5ef5d6d..3963c9b 100644 --- a/data/save.txt +++ b/data/save.txt @@ -1,7 +1,7 @@ /Vie du joueur au début 10 /Nombre d'ennemis au début -5 +8 /Nombre d'ennemis en plus à chaque manche 1 /Nombre de balles -- GitLab