From 17c372fad9af0c5f4d0851ed279f69d50cebf747 Mon Sep 17 00:00:00 2001 From: Kuba Date: Wed, 11 Dec 2024 17:58:32 +0100 Subject: [PATCH] Kamikadze poprawnie zadaje orbazenia graczowi, problemem byla za mala odleglosc --- sources/Kamikadze.cpp | 14 +++++++++++++- sources/Plansza.cpp | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/sources/Kamikadze.cpp b/sources/Kamikadze.cpp index 79eb3ae..c3aaeb0 100644 --- a/sources/Kamikadze.cpp +++ b/sources/Kamikadze.cpp @@ -1,4 +1,7 @@ #include "../headers/Kamikadze.h" + +#include + #include "../headers/Bullet.h" #include @@ -79,20 +82,29 @@ void Kamikadze::explode(const sf::Vector2f& playerPosition, bool& playerHit) { explosionClock.restart(); movementSpeed = 0.0f; // Zatrzymaj Kamikadze + std::cout << "Kamikadze exploding!" << std::endl; + std::cout << "Kamikadze position: (" << position.x << ", " << position.y << ")" << std::endl; + std::cout << "Player position: (" << playerPosition.x << ", " << playerPosition.y << ")" << std::endl; + // Zakres, w jakim gracz może zostać trafiony - const float explosionRange = 50.0f; + sf::Vector2f diff = playerPosition - sf::Vector2f(static_cast(position.x), static_cast(position.y)); float distance = std::sqrt(diff.x * diff.x + diff.y * diff.y); + std::cout << "Distance to player: " << distance << std::endl; + // Trafienie gracza, jeśli jest w obszarze eksplozji + const float explosionRange = 100.0f; if (distance <= explosionRange) { playerHit = true; + std::cout << "Player is within explosion range! Player hit!" << std::endl; } } // Sprawdzanie czasu wybuchu if (exploding && explosionClock.getElapsedTime().asSeconds() >= 0.5f) { alive = false; // Kamikadze ulega zniszczeniu po eksplozji + std::cout << "Kamikadze destroyed after explosion!" << std::endl; } } diff --git a/sources/Plansza.cpp b/sources/Plansza.cpp index e02f4b8..3cd317e 100644 --- a/sources/Plansza.cpp +++ b/sources/Plansza.cpp @@ -275,6 +275,7 @@ void Plansza::update() { it->explode(playerPosition, playerHit); if (playerHit) { ship.takeDamage(); // Gracz otrzymuje obrażenia + std::cout << "Gracz został trafiony przez eksplozję Kamikadze!" << std::endl; } }