Commit 99b6ce2a authored by Pierre MARQUE's avatar Pierre MARQUE

Parti boire le dernier verre : Mouvemnts de touts les objets - ok + tir cannons

parent d27a91c9
...@@ -49,6 +49,9 @@ static bool gameOver = false; ...@@ -49,6 +49,9 @@ static bool gameOver = false;
static bool pause = false; static bool pause = false;
static int score = 0; static int score = 0;
const float bulletSpeed = 10.;
const float bombshellSpeed = 7.5;
AntiParaCanon antiParaCanon; AntiParaCanon antiParaCanon;
AntiAircraftCanon antiAircraftCanon; AntiAircraftCanon antiAircraftCanon;
Paratrooper paraInitial; Paratrooper paraInitial;
...@@ -58,7 +61,7 @@ Bullet bulletInit; ...@@ -58,7 +61,7 @@ Bullet bulletInit;
Aircraft aircraft[NUMBER_OF_AIRCRAFTS]; Aircraft aircraft[NUMBER_OF_AIRCRAFTS];
Bullet bullet[NUMBER_OF_BULLETS]; Bullet bullet[NUMBER_OF_BULLETS];
Bombshell bombshells[NUMBER_OF_BOMBSHELLS]; Bombshell bombshells[NUMBER_OF_BOMBSHELLS];
Paratrooper paratroopers[NUMBER_MAX_OF_PARATROOPERS]; Paratrooper paratrooper[NUMBER_MAX_OF_PARATROOPERS];
//------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------
// Program main entry point // Program main entry point
...@@ -71,7 +74,7 @@ int main(void) ...@@ -71,7 +74,7 @@ int main(void)
InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window"); InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window");
InitGame();
SetTargetFPS(60); // Set our game to run at 60 frames-per-second SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
...@@ -116,32 +119,37 @@ void InitGame(void){ ...@@ -116,32 +119,37 @@ void InitGame(void){
paraInitial.hitbox.height = 10; paraInitial.hitbox.height = 10;
paraInitial.droped = false; paraInitial.droped = false;
for (int k=0; k < NUMBER_MAX_OF_PARATROOPERS; k++){ for (int k=0; k < NUMBER_MAX_OF_PARATROOPERS; k++){
paratroopers[k] = paraInitial; paratrooper[k] = paraInitial;
} }
//Initialize aircrafts //Initialize aircrafts
for (int i = 0; i < NUMBER_OF_AIRCRAFTS; i++){ for (int i = 0; i < NUMBER_OF_AIRCRAFTS; i++)
{
aircraft[i].hitbox.width = 10; aircraft[i].hitbox.width = 10;
aircraft[i].hitbox.height = GetRandomValue(30,50); aircraft[i].hitbox.height = GetRandomValue(30,50);
aircraft[i].numberOfParatroopers = GetRandomValue(0,TROOPERS_PER_PLANE); aircraft[i].numberOfParatroopers = GetRandomValue(0,TROOPERS_PER_PLANE);
if (aircraft[i].hitbox.height<41){ if (aircraft[i].hitbox.height<41)
{
aircraft[i].hitbox.height = 30; aircraft[i].hitbox.height = 30;
} }
else{ else
{
aircraft[i].hitbox.height = 50; aircraft[i].hitbox.height = 50;
} }
aircraft[i].hitbox.y = GetRandomValue(screenHeight/3, screenHeight - aircraft[i].hitbox.height); aircraft[i].hitbox.y = GetRandomValue(screenHeight/3, screenHeight - aircraft[i].hitbox.height);
if (GetRandomValue(0,1)){ if (GetRandomValue(0,1))
aircraft[i].hitbox.x = -GetRandomValue(0,1000); {
aircraft[i].position.x = -GetRandomValue(0,1000);
aircraft[i].speed.x = 5; aircraft[i].speed.x = 5;
aircraft[i].xFirstToJump = GetRandomValue(10,screenHeight/2); aircraft[i].xFirstToJump = GetRandomValue(10,screenHeight/2);
} }
else{ else
{
aircraft[i].speed.x = -5; aircraft[i].speed.x = -5;
aircraft[i].hitbox.x = -GetRandomValue(0,1000); aircraft[i].position.x = -GetRandomValue(0,1000);
aircraft[i].xFirstToJump = GetRandomValue(screenHeight/2,screenHeight-10); aircraft[i].xFirstToJump = GetRandomValue(screenHeight/2,screenHeight-10);
} }
aircraft[i].xLastTrooperDrop = -1; aircraft[i].xLastTrooperDrop = aircraft[i].xFirstToJump;
aircraft[i].speed.x = 5; aircraft[i].speed.x = 5;
aircraft[i].speed.y = 0; aircraft[i].speed.y = 0;
aircraft[i].color = BLACK; aircraft[i].color = BLACK;
...@@ -172,8 +180,8 @@ void InitGame(void){ ...@@ -172,8 +180,8 @@ void InitGame(void){
bulletInit.speed.x = 0; bulletInit.speed.x = 0;
bulletInit.speed.y = 0; bulletInit.speed.y = 0;
bulletInit.color = RED; bulletInit.color = RED;
for (int j =0; j< NUMBER_OF_BULLETS;j++){ for (int j =0; j< NUMBER_OF_BULLETS; j++){
bullet[j]= bulletInit; bullet[j] = bulletInit;
} }
//Initialize canons //Initialize canons
...@@ -186,24 +194,90 @@ void InitGame(void){ ...@@ -186,24 +194,90 @@ void InitGame(void){
antiAircraftCanon.sin = 0.; antiAircraftCanon.sin = 0.;
antiAircraftCanon.cos = 0.; antiAircraftCanon.cos = 0.;
antiAircraftCanon.position.x = 0.; antiAircraftCanon.position.x = screenWidth;
antiAircraftCanon.position.y = 0.; antiAircraftCanon.position.y = 0.;
antiAircraftCanon.aimingPosition.x = 0.; antiAircraftCanon.aimingPosition.x = 0.;
antiAircraftCanon.aimingPosition.y = 0.; antiAircraftCanon.aimingPosition.y = 0.;
} }
void UpdateGame(void){ void UpdateGame(void){
if (!gameOver){ if (!gameOver)
if (!pause){ {
//Releasing and animate Aircrafts if (!pause)
{
//Moves
//Paratroopers
for(int i = 0; i<NUMBER_MAX_OF_PARATROOPERS; i++ )
{
if(paratrooper[i].droped)
{
paratrooper[i].position.x += paratrooper[i].speed.x;
paratrooper[i].position.y += paratrooper[i].speed.y;
}
}
//Planes
for(int j = 0; j<NUMBER_OF_AIRCRAFTS; j++)
{
aircraft[j].position.x += aircraft[j].speed.x;
aircraft[j].position.y += aircraft[j].speed.y;
}
//Bullets
for(int k = 0; k<NUMBER_OF_BULLETS; k++)
{
if (bullet[k].ammoShot)
{
bullet[k].position.x += bullet[k].speed.x;
bullet[k].position.y += bullet[k].speed.y;
}
}
//Defining where the canons are shooting //Defining where the canons are shooting
float hypothenuse = sqrt(powf(GetMousePosition().x,2) + powf(GetMousePosition().y,2));
antiParaCanon.aimingPosition = GetMousePosition(); antiParaCanon.aimingPosition = GetMousePosition();
antiParaCanon.sin = (antiParaCanon.aimingPosition.y - antiParaCanon.position.y)/hypothenuse;
antiParaCanon.cos = (antiParaCanon.aimingPosition.x - antiParaCanon.position.x)/hypothenuse;
antiAircraftCanon.aimingPosition = GetMousePosition(); antiAircraftCanon.aimingPosition = GetMousePosition();
antiAircraftCanon.sin = (antiAircraftCanon.aimingPosition.y - antiAircraftCanon.position.y)/hypothenuse;
antiAircraftCanon.cos = (antiAircraftCanon.aimingPosition.x - antiAircraftCanon.position.x)/hypothenuse;
//Shooting
// anti-Paratroopers canon
if (IsMouseButtonPressed(MOUSE_RIGHT_BUTTON))
{
for (int i = 0; i<NUMBER_OF_BULLETS; i++)
{
if (!bullet[i].ammoShot)
{
bullet[i].ammoShot = true;
bullet[i].position.x = antiParaCanon.position.x;
bullet[i].position.y = antiParaCanon.position.y;
bullet[i].speed.x = bulletSpeed*antiParaCanon.cos;
bullet[i].speed.y = bulletSpeed*antiParaCanon.sin;
break;
}
}
}
//anti-aircrafts canon
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON))
{
for (int i = 0; i<NUMBER_OF_BOMBSHELLS; i++)
{
if (!bullet[i].ammoShot)
{
bombshells[i].ammoShot = true;
bombshells[i].position.x = antiAircraftCanon.position.x;
bombshells[i].position.y = antiAircraftCanon.position.y;
bombshells[i].speed.x = bulletSpeed*antiAircraftCanon.cos;
bombshells[i].speed.y = bulletSpeed*antiAircraftCanon.sin;
break;
}
}
}
} }
} }
} }
......
No preview for this file type
...@@ -8,6 +8,7 @@ typedef struct Paratrooper ...@@ -8,6 +8,7 @@ typedef struct Paratrooper
int life; int life;
bool droped; bool droped;
Rectangle hitbox; Rectangle hitbox;
Vector2 position;
Vector2 speed; Vector2 speed;
Color color; // yellow or red Color color; // yellow or red
}Paratrooper; }Paratrooper;
...@@ -19,6 +20,7 @@ typedef struct Aircraft ...@@ -19,6 +20,7 @@ typedef struct Aircraft
float xLastTrooperDrop; float xLastTrooperDrop;
int numberOfParatroopers; int numberOfParatroopers;
Rectangle hitbox; Rectangle hitbox;
Vector2 position;
Vector2 speed; Vector2 speed;
Color color; //black Color color; //black
}Aircraft; }Aircraft;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment