| 12
 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