Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #include "game.h"
- #include "entity.h"
- class Player : public sf::RectangleShape, public Entity {
- public:
- Player(const sf::Vector2f &size = sf::Vector2f(0, 0)) : RectangleShape(size), Entity("", 100.0f, 10.0f, 5.0f)
- {
- std::cout << "Inside constructor for Player" << std::endl;
- m_Score = 0;
- }
- ~Player()
- {
- std::cout << "Inside destructor for Player" << std::endl;
- }
- sf::Vector2f getMoveDirection() const { return m_MoveDirection; }
- int getScore() const { return m_Score; }
- void setMoveDirection(const sf::Vector2f &moveDirection) { m_MoveDirection = moveDirection; }
- void setMoveDirection(float x, float y) { m_MoveDirection.x = x; m_MoveDirection.y = y; }
- void setScore(int score) { m_Score = score; }
- void checkKeys();
- void update();
- private:
- sf::Vector2f m_MoveDirection;
- int m_Score;
- };
- void Player::checkKeys() {
- if (sf::Keyboard::isKeyPressed(sf::Keyboard::W)) {
- // up
- setMoveDirection(0, -1.0f);
- }
- else if (sf::Keyboard::isKeyPressed(sf::Keyboard::A)) {
- // left
- setMoveDirection(-1.0f, 0);
- }
- else if (sf::Keyboard::isKeyPressed(sf::Keyboard::S)) {
- // down
- setMoveDirection(0, 1.0f);
- }
- else if (sf::Keyboard::isKeyPressed(sf::Keyboard::D)) {
- // right
- setMoveDirection(1.0f, 0);
- }
- else {
- setMoveDirection(0, 0);
- }
- if (sf::Keyboard::isKeyPressed(sf::Keyboard::W)
- && sf::Keyboard::isKeyPressed(sf::Keyboard::A)) {
- // up left
- setMoveDirection(-1.0f, -1.0f);
- }
- else if (sf::Keyboard::isKeyPressed(sf::Keyboard::S)
- && sf::Keyboard::isKeyPressed(sf::Keyboard::A)) {
- // down left
- setMoveDirection(-1.0f, 1.0f);
- }
- else if (sf::Keyboard::isKeyPressed(sf::Keyboard::S)
- && sf::Keyboard::isKeyPressed(sf::Keyboard::D)) {
- // down right
- setMoveDirection(1.0f, 1.0f);
- }
- else if (sf::Keyboard::isKeyPressed(sf::Keyboard::W)
- && sf::Keyboard::isKeyPressed(sf::Keyboard::D)) {
- // up right
- setMoveDirection(1.0f, -1.0f);
- }
- }
- void Player::update() {
- move(m_MoveDirection * getSpeed());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement