Compare commits
3 Commits
6a833f5698
...
BossV1
| Author | SHA1 | Date | |
|---|---|---|---|
| ff562d4d92 | |||
| 898671a72a | |||
| 0ea80559e5 |
@@ -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();
|
||||
}
|
||||
|
||||
@@ -382,10 +382,20 @@ void Plansza::update() {
|
||||
}
|
||||
}
|
||||
|
||||
// Kolizja bossa z graczem
|
||||
if (ship->getSprite().getGlobalBounds().intersects(boss->getSprite().getGlobalBounds())) {
|
||||
ship->takeDamage();
|
||||
for (auto rocketIt = ship->getRockets().begin(); rocketIt != ship->getRockets().end();) {
|
||||
if (boss->getSprite().getGlobalBounds().intersects(rocketIt->getSprite().getGlobalBounds())) {
|
||||
boss->takeDamage();
|
||||
rocketIt = ship->getRockets().erase(rocketIt);
|
||||
std::cout << "Rocket hit boss! Boss HP: " << boss->getHP() << std::endl;
|
||||
} else {
|
||||
++rocketIt;
|
||||
}
|
||||
}
|
||||
|
||||
// Kolizja bossa z graczem
|
||||
// if (ship->getSprite().getGlobalBounds().intersects(boss->getSprite().getGlobalBounds())) {
|
||||
// ship->takeDamage();
|
||||
// }
|
||||
} else if (bossSpawned && (!boss || !boss->isAlive())) {
|
||||
std::cout << "Boss defeated!" << std::endl;
|
||||
delete boss;
|
||||
@@ -415,14 +425,47 @@ void Plansza::update() {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if (boss->isShooting() && boss->getBeam() != nullptr) {
|
||||
if (ship->getSprite().getGlobalBounds().intersects(boss->getBeam()->getSprite().getGlobalBounds())) {
|
||||
ship->takeDamage(); // Gracz otrzymuje obrażenia
|
||||
}
|
||||
}
|
||||
|
||||
// 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->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