diff --git a/code/display.c b/code/display.c index 4bc00d064fb5b012832f4229f8db6d502579827a..0f57d82b61ebac6ef7dbf21d86cfddcebac5cc5c 100644 --- a/code/display.c +++ b/code/display.c @@ -101,6 +101,15 @@ 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) + { + rotate_right(renderer, world, resources->enemies[i],i); + } + else + { + rotate_left(renderer, world, resources->enemies[i],i); + }*/ load_texture_enemies(resources, renderer, world, i); } } @@ -258,21 +267,21 @@ void destroy_textures(resources_t *resources, world_t *world) } -/*void rotate_right(SDL_Renderer *renderer, world_t *world,resources_t *resources) +void rotate_right(SDL_Renderer *renderer, world_t *world,SDL_Texture* texture, int i) { SDL_RendererFlip flip = SDL_FLIP_VERTICAL; - SDL_RenderCopyEx(renderer, resources->soldier_idle, NULL, &world->DestSoldier, 180, NULL, flip); + SDL_RenderCopyEx(renderer, texture, NULL, &world->rounds.enemies[i].DestEnemy, 180, NULL, flip); - SDL_RenderCopyEx(renderer, resources->soldier_run[5], NULL, &world->DestSoldier, 180, NULL, flip); + //SDL_RenderCopyEx(renderer, resources->soldier_run[5], NULL, &world->DestSoldier, 180, NULL, flip); } -void rotate_left(SDL_Renderer *renderer, world_t *world,resources_t *resources) +void rotate_left(SDL_Renderer *renderer, world_t *world,SDL_Texture* texture, int i) { SDL_RendererFlip flip = SDL_FLIP_VERTICAL; - SDL_RenderCopyEx(renderer, resources->soldier_idle, NULL, &world->DestSoldier, -180, NULL, flip); + SDL_RenderCopyEx(renderer, texture, NULL, &world->rounds.enemies[i].DestEnemy, -180, NULL, flip); - SDL_RenderCopyEx(renderer, resources->soldier_run[5], NULL, &world->DestSoldier, -180, NULL, flip); -}*/ + //SDL_RenderCopyEx(renderer, resources->soldier_run[5], NULL, &world->DestSoldier, -180, NULL, flip); +} void load_texture_idle_left(resources_t *resources, SDL_Renderer *renderer, world_t *world) { diff --git a/code/display.h b/code/display.h index d637dacbf77c83772b038990331cf4cae853f439..1e72ee997417a8c9fdf107dc3d48947b38d12577 100644 --- a/code/display.h +++ b/code/display.h @@ -52,9 +52,9 @@ void clear_enemies_ressources(resources_t *resources,int nbEnemies); void destroy_textures(resources_t *resources, world_t *world); -//void rotate_right(SDL_Renderer *renderer, world_t *world,resources_t *resources); +void rotate_right(SDL_Renderer *renderer, world_t *world,SDL_Texture* texture, int i); -//void rotate_left(SDL_Renderer *renderer, world_t *world,resources_t *resources); +void rotate_left(SDL_Renderer *renderer, world_t *world,SDL_Texture* texture, int i); void load_texture_idle_left(resources_t *resources, SDL_Renderer *renderer, world_t *world); diff --git a/code/enemy.c b/code/enemy.c index 8633c33b157b5b9c8d30be5ef167229130329301..5af5b168e1cbbefd294d01a5a03d1cf07477df77 100644 --- a/code/enemy.c +++ b/code/enemy.c @@ -41,8 +41,10 @@ void init_enemyType1(enemy_t *enemy) if (random == 1) { init_sprite(&enemy->sprite, SCREEN_WIDTH+75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT, ENEMY_SPEED, 1); + enemy->direction = -1; }else{ init_sprite(&enemy->sprite, -75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT, ENEMY_SPEED, 1); + enemy->direction = 1; } enemy->type = 1; enemy->DestEnemy.x = enemy->sprite.x; @@ -57,8 +59,10 @@ void init_enemyType2(enemy_t *enemy) if (random == 1) { init_sprite(&enemy->sprite, SCREEN_WIDTH+75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT, ENEMY_T2_SPEED, 2); + enemy->direction = -1; }else{ init_sprite(&enemy->sprite, -75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT,ENEMY_T2_SPEED, 2); + enemy->direction = 1; } enemy->type = 2; enemy->DestEnemy.x = enemy->sprite.x; @@ -73,8 +77,10 @@ void init_enemyType3(enemy_t *enemy) if (random == 1) { init_sprite(&enemy->sprite, SCREEN_WIDTH+75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT, ENEMY_T3_SPEED, 1); + enemy->direction = -1; }else{ init_sprite(&enemy->sprite, -75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT,ENEMY_T3_SPEED, 1); + enemy->direction = 1; } enemy->type = 3; enemy->DestEnemy.x = enemy->sprite.x; @@ -89,8 +95,10 @@ void init_enemyType4(enemy_t *enemy) if (random == 1) { 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; }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->type = 4; enemy->DestEnemy.x = enemy->sprite.x; @@ -105,8 +113,10 @@ void enemy_walk(enemy_t *enemy,soldier_t *soldier) { if(soldier->sprite.x > enemy->sprite.x){ enemy->sprite.x += enemy->sprite.v; + enemy->direction = 1; }else{ enemy->sprite.x -= enemy->sprite.v; + enemy->direction = -1; } enemy->powerUP.sprite.x = enemy->sprite.x; enemy->powerUP.DestPowerUP.x = enemy->powerUP.sprite.x; diff --git a/code/enemy.h b/code/enemy.h index 511ebe7fae844002b7235620927e1ce36735c88a..5a584d12a5f03fb696f355f03300832790db7adc 100644 --- a/code/enemy.h +++ b/code/enemy.h @@ -18,6 +18,7 @@ struct enemy_s{ int power; int drop; powerUP_t powerUP; + int direction; }; /** * \brief Type qui correspond au paramètre du soldat diff --git a/data/save.txt b/data/save.txt index 3c6a683be15023bdb82f108afb921d31f9ba397a..3bf3fb573439927a45660080a1041c57961b516f 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 -22 +28 /Nombre d'ennemis en plus à chaque manche 3 /Nombre de balles