From 8db6b8572dd7b84e049b35c083fb7194e4ed9a28 Mon Sep 17 00:00:00 2001 From: Kuba Date: Wed, 4 Dec 2024 23:33:21 +0100 Subject: [PATCH] emmmm, strzal niby jest w bullecie, ale chujowo to dziala --- headers/Bullet.h | 13 +++++++++++-- sources/Bullet.cpp | 17 +++++++++++++++-- sources/Plansza.cpp | 2 +- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/headers/Bullet.h b/headers/Bullet.h index d6bc301..f1ea993 100644 --- a/headers/Bullet.h +++ b/headers/Bullet.h @@ -1,14 +1,23 @@ + #ifndef LOTOSTATEK_BULLET_H #define LOTOSTATEK_BULLET_H #include "Projectile.h" #include "SFML/Graphics/Texture.hpp" +#include "SFML/Audio/Sound.hpp" +#include "SFML/Audio/SoundBuffer.hpp" class Bullet : public Projectile { public: - Bullet(float x, float y, sf::Texture &texture) : Projectile(x,y, texture) {}; + Bullet(float x, float y, sf::Texture &texture); void update() override; + + // Dodanie metody do odtwarzania dźwięku + void playShootSound(); + +private: + sf::Sound shootSound; + sf::SoundBuffer shootBuffer; // Dodanie bufora dźwięku }; - #endif //LOTOSTATEK_BULLET_H diff --git a/sources/Bullet.cpp b/sources/Bullet.cpp index 17ff7a2..5f3bd7e 100644 --- a/sources/Bullet.cpp +++ b/sources/Bullet.cpp @@ -1,9 +1,22 @@ #include "../headers/Bullet.h" +Bullet::Bullet(float x, float y, sf::Texture &texture) : Projectile(x, y, texture) { + // Ładowanie dźwięku wystrzału + if (!shootBuffer.loadFromFile("../assets/sounds/shoot.ogg")) { + // Obsługa błędu + } + shootSound.setBuffer(shootBuffer); + playShootSound(); // Odtwarzanie dźwięku wystrzału przy utworzeniu pocisku +} + void Bullet::update() { sprite.move(0.0f, speed); position.y += int(speed); - if(position.y < -100) { + if (position.y < -100) { outOfBounds = true; } -} \ No newline at end of file +} + +void Bullet::playShootSound() { + shootSound.play(); +} diff --git a/sources/Plansza.cpp b/sources/Plansza.cpp index 90acec2..eccb516 100644 --- a/sources/Plansza.cpp +++ b/sources/Plansza.cpp @@ -57,7 +57,7 @@ void Plansza::update() { // TODO: Przenieść obiekt dźwięku wewnątrz klasy Bullet if (sf::Mouse::isButtonPressed(sf::Mouse::Left)) { ship.shoot(); - audioManager.playSoundEffect("shoot", 70.f); // Odtworzenie dźwięku wystrzału + // audioManager.playSoundEffect("shoot", 70.f); // Odtworzenie dźwięku wystrzału } if (sf::Mouse::isButtonPressed(sf::Mouse::Right)) { ship.alternate_shoot();