#ifndef WIAZKOWIEC_H #define WIAZKOWIEC_H #include "Enemy.h" #include "Actor.h" #include "Beam.h" enum class DirectionW { Up, Down, Left, Right }; class Wiazkowiec : public Actor { public: Wiazkowiec(int x, int y, const sf::Texture& texture, sf::RenderWindow *window); void move(float deltaX, float deltaY) override; void moveLeft() override; void moveRight() override; void moveUp() override; void moveDown() override; void takeDamage(); void setRandomDirection(); void checkIfBeamShootOutOfBounds(); void update(); void shoot() override; void render(sf::RenderWindow &window); bool isAlive() const; bool isShooting() const; void setPlanszaHeight(int height, int width); Beam* getBeam() const; private: sf::Texture WiazkaTexture; sf::Texture beamTexture; sf::Clock shootClock; sf::Clock shootingClock; DirectionW direction = DirectionW::Down; Beam *beam; // wskaźnik na wiązkę sf::RenderWindow *window_ptr; void spawnBeam(); // Tworzy wiązkę int planszaHeight = 800; int planszaWidth = 600; float beamDuration = 1.0f; float movementSpeed = 2.0f; bool shooting = false; bool alive = true; }; #endif //WIAZKOWIEC_H