Kamikadze poprawnie zadaje orbazenia graczowi, problemem byla za mala odleglosc
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
#include "../headers/Kamikadze.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include "../headers/Bullet.h"
|
||||
#include <random>
|
||||
|
||||
@@ -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<float>(position.x), static_cast<float>(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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user