Poprawiono kolizje bomb z pociskami gracza
This commit is contained in:
@@ -43,7 +43,7 @@ void Boss::dropBomb() {
|
|||||||
if (bombClock.getElapsedTime().asMilliseconds() >= 5000) {
|
if (bombClock.getElapsedTime().asMilliseconds() >= 5000) {
|
||||||
Bullet Bomb(position.x, position.y, BombaTexture);
|
Bullet Bomb(position.x, position.y, BombaTexture);
|
||||||
Bomb.setSpeed(0.5f);
|
Bomb.setSpeed(0.5f);
|
||||||
bullets.emplace_back(std::move(Bomb)); // Można zmienić na bombę
|
bombs.emplace_back(std::move(Bomb)); // Można zmienić na bombę
|
||||||
std::cout << "Bombka lezy" << std::endl;
|
std::cout << "Bombka lezy" << std::endl;
|
||||||
bombClock.restart();
|
bombClock.restart();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -393,9 +393,9 @@ void Plansza::update() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Kolizja bossa z graczem
|
// Kolizja bossa z graczem
|
||||||
if (ship->getSprite().getGlobalBounds().intersects(boss->getSprite().getGlobalBounds())) {
|
// if (ship->getSprite().getGlobalBounds().intersects(boss->getSprite().getGlobalBounds())) {
|
||||||
ship->takeDamage();
|
// ship->takeDamage();
|
||||||
}
|
// }
|
||||||
} else if (bossSpawned && (!boss || !boss->isAlive())) {
|
} else if (bossSpawned && (!boss || !boss->isAlive())) {
|
||||||
std::cout << "Boss defeated!" << std::endl;
|
std::cout << "Boss defeated!" << std::endl;
|
||||||
delete boss;
|
delete boss;
|
||||||
@@ -431,6 +431,59 @@ void Plansza::update() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Sprawdzenie kolizji pocisków gracza z bombami Bossa
|
||||||
|
for (auto bombIt = boss->getBombs().begin(); bombIt != boss->getBombs().end();) {
|
||||||
|
bool bombHit = false;
|
||||||
|
for (auto bulletIt = ship->getBullets().begin(); bulletIt != ship->getBullets().end();) {
|
||||||
|
if (bombIt->getSprite().getGlobalBounds().intersects(bulletIt->getSprite().getGlobalBounds())) {
|
||||||
|
ship->getBullets().erase(bulletIt);
|
||||||
|
bombIt = boss->getBombs().erase(bombIt);
|
||||||
|
bombHit = true;
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
++bulletIt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!bombHit) {
|
||||||
|
++bombIt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sprawdzenie kolizji rakiet gracza z bombami Bossa
|
||||||
|
for (auto bombIt = boss->getBombs().begin(); bombIt != boss->getBombs().end();) {
|
||||||
|
bool bombHit = false;
|
||||||
|
for (auto rocketIt = ship->getBullets().begin(); rocketIt != ship->getBullets().end();) {
|
||||||
|
if (bombIt->getSprite().getGlobalBounds().intersects(rocketIt->getSprite().getGlobalBounds())) {
|
||||||
|
ship->getBullets().erase(rocketIt);
|
||||||
|
bombIt = boss->getBombs().erase(bombIt);
|
||||||
|
bombHit = true;
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
++rocketIt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!bombHit) {
|
||||||
|
++bombIt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sprawdzenie kolizji rakiet gracza z bombami Bossa
|
||||||
|
for (auto bombIt = boss->getBombs().begin(); bombIt != boss->getBombs().end();) {
|
||||||
|
bool bombHit = false;
|
||||||
|
for (auto rocketIt = ship->getRockets().begin(); rocketIt != ship->getRockets().end();) {
|
||||||
|
if (bombIt->getSprite().getGlobalBounds().intersects(rocketIt->getSprite().getGlobalBounds())) {
|
||||||
|
ship->getRockets().erase(rocketIt);
|
||||||
|
bombIt = boss->getBombs().erase(bombIt);
|
||||||
|
bombHit = true;
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
++rocketIt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!bombHit) {
|
||||||
|
++bombIt;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user