1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
void checkCollisions(character Character, vector<shoot> &Shoot, vector<enemy> &Enemies, bool &gameover) {
//Collision enemy - Character
for (int i = 0; i < Enemies.size(); i++) {
//Compteur condition au lieu de faire une vérification imbriquée
int CompteurCondition = 0;
if (Enemies[i].getY() + Enemies[i].getHeight() >= Character.getY() && Enemies[i].getY() + Enemies[i].getHeight() <= Character.getY() + Character.getHeight()) {
CompteurCondition++;
}
else if (Enemies[i].getY() <= Character.getY() + Character.getHeight() && Enemies[i].getY() >= Character.getY()) {
CompteurCondition++;
}
if (Enemies[i].getX() + Enemies[i].getWidth() >= Character.getX() && Enemies[i].getX() + Enemies[i].getWidth() <= Character.getX() + Character.getWidth()) {
CompteurCondition++;
}
else if (Enemies[i].getX() <= Character.getX() + Character.getWidth() && Enemies[i].getX() >= Character.getX()) {
CompteurCondition++;
}
//Si au moins deux conditions sont vraies
if (CompteurCondition >= 2) {
//Afficher Game Over etc...
gameover = true;
}
else {
}
}
//Collision enemy - shoot
for (int i = 0; i < Enemies.size(); i++) {
for (int j = 0; j < Shoot.size(); j++) {
int ConditionEnemy = 0;
if (Enemies[i].getY() + Enemies[i].getHeight() >= Shoot[j].getY() && Enemies[i].getY() + Enemies[i].getHeight() <= Shoot[j].getY() + Shoot[j].getHeight()) {
ConditionEnemy++;
}
else if (Enemies[i].getY() <= Shoot[j].getY() + Shoot[j].getHeight() && Enemies[i].getY() >= Shoot[j].getY()) {
ConditionEnemy++;
}
if (Enemies[i].getX() + Enemies[i].getWidth() >= Shoot[j].getX() && Enemies[i].getX() + Enemies[i].getWidth() <= Shoot[j].getX() + Shoot[j].getWidth()) {
ConditionEnemy++;
}
else if (Enemies[i].getX() <= Shoot[j].getX() + Shoot[j].getWidth() && Enemies[i].getX() >= Shoot[j].getX()) {
ConditionEnemy++;
}
//Si au moins deux conditions sont vraies : clear la case des vector Enemies et Shoot
if (ConditionEnemy >= 2) {
Enemies.erase(Enemies.begin() + i);
Shoot.erase(Shoot.begin() + j);
}
else {
}
}
}
} |
Partager