From 3dde4a52df6383aac77d02d9deeb4bab83988c01 Mon Sep 17 00:00:00 2001 From: suck5u <suck5u@etu.univ-lorraine.fr> Date: Mon, 28 Dec 2020 18:14:40 +0100 Subject: [PATCH] Plusieurs ennemis fonctionnels --- code/display.c | 5 +++-- code/display.h | 2 +- code/enemy.c | 8 ++------ code/main.c | 2 +- code/world_data.c | 27 +++------------------------ 5 files changed, 10 insertions(+), 34 deletions(-) diff --git a/code/display.c b/code/display.c index 9501f54..a8e2479 100644 --- a/code/display.c +++ b/code/display.c @@ -105,7 +105,7 @@ void refresh_graphics(SDL_Renderer *renderer, world_t *world,resources_t *resour } -void init_ressources(SDL_Renderer *renderer, resources_t *resources) +void init_ressources(SDL_Renderer *renderer, resources_t *resources, world_t *world) { resources->background = charger_image("../resources/background.bmp", renderer); @@ -176,6 +176,7 @@ void init_ressources(SDL_Renderer *renderer, resources_t *resources) //resources->enemy = charger_image_transparente("../resources/Player/Right/IdleRight.bmp", renderer, 255,0,255); + init_enemies_ressources(renderer,resources,world); resources->powerUp = charger_image_transparente("../resources/PowerUp_Vitesse.bmp", renderer, 255,0,255); resources->plane = charger_image_transparente("../resources/Plane.bmp", renderer, 255,0,255); @@ -461,7 +462,7 @@ void load_texture_enemy(resources_t *resources, SDL_Renderer *renderer, world_t void load_texture_enemies(resources_t *resources, SDL_Renderer *renderer, world_t *world, int i) { - SDL_RenderCopy(renderer, resources->enemy, NULL, &world->rounds.enemies[i].DestEnemy); + SDL_RenderCopy(renderer, resources->enemies[i], NULL, &world->rounds.enemies[i].DestEnemy); } void load_texture_powerUp(resources_t *resources, SDL_Renderer *renderer, world_t *world) diff --git a/code/display.h b/code/display.h index 37d46ff..a4b5c98 100644 --- a/code/display.h +++ b/code/display.h @@ -42,7 +42,7 @@ SDL_Texture* charger_image_transparente(const char* nomfichier, SDL_Renderer* re void refresh_graphics(SDL_Renderer *renderer, world_t *world,resources_t *resources); -void init_ressources(SDL_Renderer *renderer, resources_t *resources); +void init_ressources(SDL_Renderer *renderer, resources_t *resources, world_t *world); void init_enemies_ressources(SDL_Renderer *renderer, resources_t *resources, world_t *world); diff --git a/code/enemy.c b/code/enemy.c index 4d67d6e..4851fce 100644 --- a/code/enemy.c +++ b/code/enemy.c @@ -22,12 +22,11 @@ void init_enemy(enemy_t *enemy) }else{ init_enemyType4(enemy); } - enemy->is_moving = 0; + enemy->is_moving = 1; } void init_enemyType1(enemy_t *enemy) { - srand(time(NULL)); int random = rand()%2+0; if (random == 1) { @@ -44,7 +43,6 @@ void init_enemyType1(enemy_t *enemy) void init_enemyType2(enemy_t *enemy) { - srand(time(NULL)); int random = rand()%2+0; if (random == 1) { @@ -61,7 +59,6 @@ void init_enemyType2(enemy_t *enemy) void init_enemyType3(enemy_t *enemy) { - srand(time(NULL)); int random = rand()%2+0; if (random == 1) { @@ -78,7 +75,6 @@ void init_enemyType3(enemy_t *enemy) void init_enemyType4(enemy_t *enemy) { - srand(time(NULL)); int random = rand()%2+0; if (random == 1) { @@ -95,7 +91,7 @@ void init_enemyType4(enemy_t *enemy) void enemy_walk(enemy_t *enemy,soldier_t *soldier) { - if (sprites_collide(&enemy->sprite, &soldier->sprite) != 1 && enemy->is_moving!=0) + if (sprites_collide(&enemy->sprite, &soldier->sprite) == 0 && enemy->is_moving == 1) { if(soldier->sprite.x > enemy->sprite.x){ enemy->sprite.x += enemy->sprite.v; diff --git a/code/main.c b/code/main.c index f021cd1..b0fdccf 100644 --- a/code/main.c +++ b/code/main.c @@ -11,8 +11,8 @@ void init(SDL_Window **window, SDL_Renderer ** renderer, resources_t *resources, world_t * world) { - init_ressources(*renderer,resources); init_data(world); + init_ressources(*renderer,resources,world); } int main(void) diff --git a/code/world_data.c b/code/world_data.c index 14f6d72..a25a0fa 100644 --- a/code/world_data.c +++ b/code/world_data.c @@ -44,28 +44,10 @@ void init_data(world_t *world) //&world->charger = (bullet_t*)malloc(NB_BULLET*sizeof(bullet_t)); //init_bullet(world); - - //Initialisation du missile de l'ennemi - //init_sprite(&world->missile_enemy, world->enemy_shot.x+SHIP_SIZE/2-MISSILE_SIZE/2, world->enemy_shot.y+SHIP_SIZE/2+MISSILE_SIZE/2, MISSILE_SIZE, MISSILE_SIZE, MISSILE_SPEED_ENEMY,1); - //Rendre les deux missiles invisible - - //set_invisible(&world->missile_enemy); - //Initialisation des ennemies - //init_enemies(world); - - //Initialisation du power-up - //world->enemy_power = generate_number(0,NB_ENEMIES); - //init_sprite(&world->power_up, world->enemies[world->enemy_power].x, world->enemies[world->enemy_power].y, world->enemies[world->enemy_power].w, world->enemies[world->enemy_power].h, world->enemies[world->enemy_power].v, 1); - //set_invisible(&world->power_up); - //On n'est pas à la fin du jeu world->gameover = 0; - //Valeur à -1 car elle ne correspond à aucun état connu - //world->state = -1; //Score à 0 //world->score = 0; - //Compteur à 0 - //world->cpt = 0; } @@ -117,11 +99,12 @@ void refresh_data(world_t *world) enemy_walk(&world->rounds.enemies[i],&world->soldier); world->rounds.enemies[i].DestEnemy.x = world->rounds.enemies[i].sprite.x; 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); enemy_dead(&world->rounds.enemies[i],&world->soldier); - printf("%f\n",world->rounds.enemies[i].sprite.x); } } - //Si la manche est finie, manche suivante + //Sinon si la manche est finie, manche suivante else { nextRound(&world->rounds); @@ -133,10 +116,6 @@ void refresh_data(world_t *world) world->soldier.time_bullet++; - - - enemy_touch_soldier(&world->enemy,&world->soldier); - plane_dead(&world->supplying,&world->soldier); soldier_touch_powerUP(&world->supplying.powerUP,&world->soldier); -- GitLab