Kamikadze wybucha nawet bez gracza
This commit is contained in:
@@ -264,29 +264,31 @@ void Plansza::update() {
|
||||
|
||||
|
||||
for (auto it = KEnemies.begin(); it != KEnemies.end();) {
|
||||
sf::Vector2f playerPosition = ship.getSprite().getPosition(); // Pozycja gracza
|
||||
sf::Vector2f playerPosition = ship.getSprite().getPosition(); // Aktualna pozycja gracza
|
||||
bool playerHit = false;
|
||||
|
||||
// Aktualizacja ruchu Kamikadze
|
||||
|
||||
// Aktualizacja pozycji Kamikadze
|
||||
it->update(playerPosition);
|
||||
|
||||
// Sprawdź kolizję z graczem
|
||||
// Wybuch, gdy Kamikadze dotknie gracza
|
||||
if (ship.getSprite().getGlobalBounds().intersects(it->getSprite().getGlobalBounds())) {
|
||||
it->explode(playerPosition, playerHit);
|
||||
|
||||
if (playerHit) {
|
||||
ship.takeDamage(); // Gracz traci punkt życia
|
||||
ship.takeDamage(); // Gracz otrzymuje obrażenia
|
||||
}
|
||||
}
|
||||
|
||||
// Rysuj Kamikadze na ekranie
|
||||
// Kamikadze eksploduje po aktywacji niezależnie od obecności gracza
|
||||
if (it->isExploding()) {
|
||||
it->explode(playerPosition, playerHit); // Eksplozja trwa
|
||||
}
|
||||
|
||||
// Usunięcie martwego Kamikadze z listy
|
||||
if (it->isAlive()) {
|
||||
window->draw(it->getSprite());
|
||||
++it;
|
||||
} else {
|
||||
// Usuń, jeśli Kamikadze już nie żyje
|
||||
std::cout << "Kamikadze has exploded!" << std::endl;
|
||||
std::cout << "Kamikadze exploded!" << std::endl;
|
||||
it = KEnemies.erase(it);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user