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