Skip to content
Snippets Groups Projects
Commit 109883af authored by suck5u's avatar suck5u
Browse files
parents 6e179751 a17f5241
No related branches found
No related tags found
No related merge requests found
...@@ -30,15 +30,40 @@ ...@@ -30,15 +30,40 @@
#define SOLDIER_WIDTH 78 #define SOLDIER_WIDTH 78
/** /**
* \brief Taille du soldat * \brief Hauteur de l'ennemie
*/ */
#define ENEMY_SIZE 100 #define ENEMY_HEIGHT 88
/**
* \brief Largeur de l'ennemie
*/
#define ENEMY_WIDTH 78
/**
* \brief Hauteur de l'ennemie du type 4
*/
#define ENEMY_T4_HEIGHT 68
/**
* \brief Largeur de l'ennemie du type 4
*/
#define ENEMY_T4_WIDTH 58
/**
* \brief Taille de l'avion de ravitaillement
*/
#define PLANE_SIZE 50 #define PLANE_SIZE 50
/**
* \brief Taille de l'avion de ravitaillement
*/
#define POWERUP_SIZE 50 #define POWERUP_SIZE 50
/**
* \brief Vitesse de chute du power up
*/
#define POWERUP_SPEED 0.5 #define POWERUP_SPEED 0.5
/** /**
* \brief Hauteur de la balle * \brief Hauteur de la balle
*/ */
...@@ -54,6 +79,19 @@ ...@@ -54,6 +79,19 @@
*/ */
#define ENEMY_SPEED 1 #define ENEMY_SPEED 1
/**
* \brief Vitesse d'un ennemi de type 3
*/
#define ENEMY_T3_SPEED 3
/**
* \brief Vitesse d'un ennemi de type 2
*/
#define ENEMY_T2_SPEED 0.5
/**
* \brief Vitesse de l'avion de ravitaillement
*/
#define PLANE_SPEED 1 #define PLANE_SPEED 1
/** /**
...@@ -61,6 +99,9 @@ ...@@ -61,6 +99,9 @@
*/ */
#define SOLDIER_SPEED 2 #define SOLDIER_SPEED 2
/**
* \brief Vitesse du accroupie
*/
#define SOLDIER_SPEED_CTRL 0.5f #define SOLDIER_SPEED_CTRL 0.5f
/** /**
......
...@@ -11,15 +11,18 @@ ...@@ -11,15 +11,18 @@
void init_enemy(enemy_t *enemy) void init_enemy(enemy_t *enemy)
{ {
srand(time(NULL)); srand(time(NULL));
int random = rand()%3+0; int random = rand()%4+0;
if (random == 1) if (random == 1)
{ {
init_enemyType1(enemy); init_enemyType1(enemy);
}else if (random == 2){ }else if (random == 2){
init_enemyType2(enemy); init_enemyType2(enemy);
}else{ }else if (random == 3){
init_enemyType3(enemy); init_enemyType3(enemy);
} }else{
init_enemyType4(enemy);
}
enemy->is_moving = 0;
} }
void init_enemyType1(enemy_t *enemy) void init_enemyType1(enemy_t *enemy)
...@@ -28,15 +31,15 @@ void init_enemyType1(enemy_t *enemy) ...@@ -28,15 +31,15 @@ void init_enemyType1(enemy_t *enemy)
int random = rand()%2+0; int random = rand()%2+0;
if (random == 1) if (random == 1)
{ {
init_sprite(&enemy->sprite, SCREEN_WIDTH+75, SCREEN_HEIGHT-ENEMY_SIZE*2, ENEMY_SIZE, ENEMY_SIZE, ENEMY_SPEED, 1); init_sprite(&enemy->sprite, SCREEN_WIDTH+75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT, ENEMY_SPEED, 1);
}else{ }else{
init_sprite(&enemy->sprite, -75, SCREEN_HEIGHT-ENEMY_SIZE*2, ENEMY_SIZE, ENEMY_SIZE, ENEMY_SPEED, 1); init_sprite(&enemy->sprite, -75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT, ENEMY_SPEED, 1);
} }
enemy->type = 1; enemy->type = 1;
enemy->DestEnemy.x = enemy->sprite.x; enemy->DestEnemy.x = enemy->sprite.x;
enemy->DestEnemy.y = enemy->sprite.y; enemy->DestEnemy.y = enemy->sprite.y;
enemy->DestEnemy.w = ENEMY_SIZE; enemy->DestEnemy.w = ENEMY_WIDTH;
enemy->DestEnemy.h = ENEMY_SIZE; enemy->DestEnemy.h = ENEMY_HEIGHT;
} }
void init_enemyType2(enemy_t *enemy) void init_enemyType2(enemy_t *enemy)
...@@ -45,15 +48,15 @@ void init_enemyType2(enemy_t *enemy) ...@@ -45,15 +48,15 @@ void init_enemyType2(enemy_t *enemy)
int random = rand()%2+0; int random = rand()%2+0;
if (random == 1) if (random == 1)
{ {
init_sprite(&enemy->sprite, SCREEN_WIDTH+75, SCREEN_HEIGHT-ENEMY_SIZE*2, ENEMY_SIZE, ENEMY_SIZE, 1, 10); init_sprite(&enemy->sprite, SCREEN_WIDTH+75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT, ENEMY_T2_SPEED, 10);
}else{ }else{
init_sprite(&enemy->sprite, -75, SCREEN_HEIGHT-ENEMY_SIZE*2, ENEMY_SIZE, ENEMY_SIZE,1, 10); init_sprite(&enemy->sprite, -75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT,ENEMY_T2_SPEED, 10);
} }
enemy->type = 2; enemy->type = 2;
enemy->DestEnemy.x = enemy->sprite.x; enemy->DestEnemy.x = enemy->sprite.x;
enemy->DestEnemy.y = enemy->sprite.y; enemy->DestEnemy.y = enemy->sprite.y;
enemy->DestEnemy.w = ENEMY_SIZE; enemy->DestEnemy.w = ENEMY_WIDTH;
enemy->DestEnemy.h = ENEMY_SIZE; enemy->DestEnemy.h = ENEMY_HEIGHT;
} }
void init_enemyType3(enemy_t *enemy) void init_enemyType3(enemy_t *enemy)
...@@ -62,20 +65,37 @@ void init_enemyType3(enemy_t *enemy) ...@@ -62,20 +65,37 @@ void init_enemyType3(enemy_t *enemy)
int random = rand()%2+0; int random = rand()%2+0;
if (random == 1) if (random == 1)
{ {
init_sprite(&enemy->sprite, SCREEN_WIDTH+75, SCREEN_HEIGHT-ENEMY_SIZE*2, ENEMY_SIZE, ENEMY_SIZE, 5, 1); init_sprite(&enemy->sprite, SCREEN_WIDTH+75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT, ENEMY_T3_SPEED, 1);
}else{ }else{
init_sprite(&enemy->sprite, -75, SCREEN_HEIGHT-ENEMY_SIZE*2, ENEMY_SIZE, ENEMY_SIZE,5, 1); init_sprite(&enemy->sprite, -75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT,ENEMY_T3_SPEED, 1);
} }
enemy->type = 3; enemy->type = 3;
enemy->DestEnemy.x = enemy->sprite.x; enemy->DestEnemy.x = enemy->sprite.x;
enemy->DestEnemy.y = enemy->sprite.y; enemy->DestEnemy.y = enemy->sprite.y;
enemy->DestEnemy.w = ENEMY_SIZE; enemy->DestEnemy.w = ENEMY_WIDTH;
enemy->DestEnemy.h = ENEMY_SIZE; enemy->DestEnemy.h = ENEMY_HEIGHT;
}
void init_enemyType4(enemy_t *enemy)
{
srand(time(NULL));
int random = rand()%2+0;
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);
}else{
init_sprite(&enemy->sprite, -75, SCREEN_HEIGHT-ENEMY_T4_HEIGHT*2-40, ENEMY_T4_WIDTH, ENEMY_T4_HEIGHT,1, 1);
}
enemy->type = 4;
enemy->DestEnemy.x = enemy->sprite.x;
enemy->DestEnemy.y = enemy->sprite.y;
enemy->DestEnemy.w = ENEMY_T4_WIDTH;
enemy->DestEnemy.h = ENEMY_T4_HEIGHT;
} }
void enemy_walk(enemy_t *enemy,soldier_t *soldier) void enemy_walk(enemy_t *enemy,soldier_t *soldier)
{ {
if (sprites_collide(&enemy->sprite, &soldier->sprite) != 1) if (sprites_collide(&enemy->sprite, &soldier->sprite) != 1 && enemy->is_moving!=0)
{ {
if(soldier->sprite.x > enemy->sprite.x){ if(soldier->sprite.x > enemy->sprite.x){
enemy->sprite.x += enemy->sprite.v; enemy->sprite.x += enemy->sprite.v;
......
...@@ -14,6 +14,7 @@ struct enemy_s{ ...@@ -14,6 +14,7 @@ struct enemy_s{
int hp; /*!<Point de vie */ int hp; /*!<Point de vie */
SDL_Rect DestEnemy; SDL_Rect DestEnemy;
int type; int type;
int is_moving;
}; };
/** /**
* \brief Type qui correspond au paramètre du soldat * \brief Type qui correspond au paramètre du soldat
...@@ -35,4 +36,6 @@ void init_enemyType2(enemy_t *enemy); ...@@ -35,4 +36,6 @@ void init_enemyType2(enemy_t *enemy);
void init_enemyType3(enemy_t *enemy); void init_enemyType3(enemy_t *enemy);
void init_enemyType4(enemy_t *enemy);
#endif #endif
\ No newline at end of file
...@@ -16,8 +16,8 @@ struct sprite_s{ ...@@ -16,8 +16,8 @@ struct sprite_s{
float h; /*!<Hauteur du sprite */ float h; /*!<Hauteur du sprite */
float w; /*!<Largeur du sprite */ float w; /*!<Largeur du sprite */
float v; /*!<Vitesse vertical */ float v; /*!<Vitesse vertical */
int is_visible; /*!<Visible ou non, 0 si visible et 1 si non visible */ int is_visible; /*!<Visible ou non, 0 si invisible et 1 si visible */
int hp; int hp; /*!<Point de vie */
}; };
/** /**
* \brief Type qui correspond au paramètre du sprite * \brief Type qui correspond au paramètre du sprite
......
...@@ -135,7 +135,7 @@ void refresh_data(world_t *world) ...@@ -135,7 +135,7 @@ void refresh_data(world_t *world)
//enemy_touch_soldier(&world->enemy,&world->soldier); enemy_touch_soldier(&world->enemy,&world->soldier);
plane_dead(&world->supplying,&world->soldier); plane_dead(&world->supplying,&world->soldier);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment