Poprawiono kolizje bomb z pociskami gracza
This commit is contained in:
@@ -43,7 +43,7 @@ void Boss::dropBomb() {
|
||||
if (bombClock.getElapsedTime().asMilliseconds() >= 5000) {
|
||||
Bullet Bomb(position.x, position.y, BombaTexture);
|
||||
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;
|
||||
bombClock.restart();
|
||||
}
|
||||
|
||||
@@ -393,9 +393,9 @@ void Plansza::update() {
|
||||
}
|
||||
|
||||
// Kolizja bossa z graczem
|
||||
if (ship->getSprite().getGlobalBounds().intersects(boss->getSprite().getGlobalBounds())) {
|
||||
ship->takeDamage();
|
||||
}
|
||||
// if (ship->getSprite().getGlobalBounds().intersects(boss->getSprite().getGlobalBounds())) {
|
||||
// ship->takeDamage();
|
||||
// }
|
||||
} else if (bossSpawned && (!boss || !boss->isAlive())) {
|
||||
std::cout << "Boss defeated!" << std::endl;
|
||||
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