From fcabc0534aa94fb42ead14bd8df88749b7102de0 Mon Sep 17 00:00:00 2001 From: hamx01 Date: Sat, 16 Nov 2024 16:01:01 +0100 Subject: [PATCH] A little code refactor + new bullet texture added --- assets/img/bullet_right.png | Bin 0 -> 20123 bytes headers/Actor.h | 16 ++++++++-------- headers/Player.h | 12 ++++++------ main.cpp | 1 - sources/Actor.cpp | 12 ++++-------- sources/Player.cpp | 2 +- 6 files changed, 19 insertions(+), 24 deletions(-) create mode 100644 assets/img/bullet_right.png diff --git a/assets/img/bullet_right.png b/assets/img/bullet_right.png new file mode 100644 index 0000000000000000000000000000000000000000..6704ac91c549cc580668d1bba2fbb45e3664367b GIT binary patch literal 20123 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 JPDHLkV1ig<(1QQ~ literal 0 HcmV?d00001 diff --git a/headers/Actor.h b/headers/Actor.h index 1c62ef9..70319be 100644 --- a/headers/Actor.h +++ b/headers/Actor.h @@ -20,13 +20,12 @@ public: Position getPosition(); - void move(float deltaX, float deltaY); - - void moveLeft(); - - void moveRight(); - - void shoot(); + virtual void move(float deltaX, float deltaY) = 0; + virtual void moveLeft() = 0; + virtual void moveRight() = 0; + virtual void moveUp() = 0; + virtual void moveDown() = 0; + virtual void shoot() = 0; std::vector& getBullets(); @@ -39,7 +38,8 @@ public: protected: sf::Sprite actorSprite; sf::Texture actorTexture; - sf::Texture bulletTexture; + sf::Texture bulletTextureLeft; + sf::Texture bulletTextureRight; Position position; unsigned int hp; unsigned int damage; diff --git a/headers/Player.h b/headers/Player.h index 76e73ec..eee3c1f 100644 --- a/headers/Player.h +++ b/headers/Player.h @@ -7,13 +7,13 @@ class Player : public Actor { public: Player(int x, int y, std::string path); - void shoot(); + void shoot() override; void setFirerate(unsigned int firerate); - void move(float deltaX, float deltaY); - void moveLeft(); - void moveRight(); - void moveUp(); - void moveDown(); + void move(float deltaX, float deltaY) override; + void moveLeft() override; + void moveRight() override; + void moveUp() override; + void moveDown() override; private: std::chrono::steady_clock::time_point lastShotTime = std::chrono::steady_clock::now(); }; diff --git a/main.cpp b/main.cpp index cf61214..5d3bdd9 100644 --- a/main.cpp +++ b/main.cpp @@ -41,7 +41,6 @@ int main() } } - // Sprawdzanie stanu klawiszy w głównej pętli gry if(sf::Keyboard::isKeyPressed(sf::Keyboard::Left)) { if(ship.getPosition().x > -10) { ship.moveLeft(); diff --git a/sources/Actor.cpp b/sources/Actor.cpp index c98ec74..ffa37e3 100644 --- a/sources/Actor.cpp +++ b/sources/Actor.cpp @@ -1,5 +1,6 @@ #include "../headers/Actor.h" +// TODO: Naprawić krzywy sprite statku Actor::Actor(int x, int y, std::string path) { loadTexture(path); position.x = x; @@ -11,25 +12,20 @@ void Actor::loadTexture(std::string path) { actorTexture.loadFromFile(path); actorSprite.setTexture(actorTexture); - bulletTexture.loadFromFile("../assets/img/bullet.png"); + bulletTextureLeft.loadFromFile("../assets/img/bullet.png"); + bulletTextureRight.loadFromFile("../assets/img/bullet_right.png"); } sf::Sprite &Actor::getSprite() { return actorSprite; } -void Actor::move(float deltaX, float deltaY) {} - -void Actor::moveLeft() {} - -void Actor::moveRight() {} - Position Actor::getPosition() { return {position.x, position.y}; } void Actor::shoot() { - bullets.emplace_back(float(position.x) + actorSprite.getGlobalBounds().width / 2-62, position.y, bulletTexture); + bullets.emplace_back(float(position.x) + actorSprite.getGlobalBounds().width / 2-62, position.y, bulletTextureLeft); } std::vector &Actor::getBullets() { diff --git a/sources/Player.cpp b/sources/Player.cpp index 2dea282..c148797 100644 --- a/sources/Player.cpp +++ b/sources/Player.cpp @@ -5,7 +5,7 @@ Player::Player(int x, int y, std::string path) : Actor(x, y, path) {}; void Player::shoot() { auto now = std::chrono::steady_clock::now(); if (std::chrono::duration_cast(now - lastShotTime).count() >= firerate) { - bullets.emplace_back(float(position.x) + actorSprite.getGlobalBounds().width / 2-62, position.y, bulletTexture); + bullets.emplace_back(float(position.x) + actorSprite.getGlobalBounds().width / 2-62, position.y, bulletTextureLeft); lastShotTime = now; } }