Player

The Player class represents the player in the game.

This class is derived from the ArmedEntity class and add some methods to manage the player.

Public member functions

// Construct a new Player object
Player(Room &room, std::shared_ptr<Client> client, u_int id, short x, short y);
// Construct a new Player object
Player(Room &room, std::shared_ptr<Client> client, u_int id, const std::pair<short, short> &pos);

// Refresh the player. This method currently only refresh the missiles of the player by calling refreshMissiles()
virtual void refresh();
// Checks if any missile of the player collide with another entity (this method override the one from IEntity)
virtual bool collide(const IEntity &other) override;
// Move the player. This method checks if the player is out of the screen and if it is, it doesn't move it.
virtual void move(short dx, short dy);
// Send the player's position to all the clients in the room
virtual void sendPos();
// Fire a missile. This method checks the time between the last missile fired and the current time and if it's less than PLAYER_FIRE_TIME, it doesn't fire a missile.
virtual void fireMissile();
// Get the last move time. This method is used by the room to not move the player too fast
const std::chrono::system_clock::time_point &lastMoveTime() const;
// Set the last move time. This method is used by the room to not move the player too fast
void setLastMoveTime(const std::chrono::system_clock::time_point &lastMoveTime);
// Get the player's score
int score() const;
// Set the player's score
void setScore(int score);
// Get the player's client
std::shared_ptr<Client> client() const;

Member functions documentation

Constructor

The constructor of the Player class.

Player(Room &room, std::shared_ptr<Client> client, u_int id, short x, short y);
Player(Room &room, std::shared_ptr<Client> client, u_int id, const std::pair<short, short> &pos);

Parameters

  • room: A reference to the room in which the player is.

  • client: A shared pointer to the client of the player.

  • id: The id of the player.

  • x: The x position of the player.

  • y: The y position of the player.

  • pos: A pair of short containing the position of the player (x, y).

refresh

This method refreshes the player. It currently only refresh the missiles of the player by calling refreshMissiles()

virtual void refresh();

collide

This method checks if any missile of the player collide with another entity (this method override the one from IEntity)

virtual bool collide(const IEntity &other) override;

Parameters

  • other: A reference to the other entity to check collision with.

Returns

A boolean which is true if the player collide with the other entity, false otherwise.

move

This method moves the player. It checks if the player is out of the screen and if it is, it doesn't move it.

virtual void move(short dx, short dy);

Parameters

  • dx: The x offset to move the player.

  • dy: The y offset to move the player.

sendPos

This method sends the player's position to all the clients in the room.

virtual void sendPos();

fireMissile

This method fires a missile. It checks the time between the last missile fired and the current time and if it's less than PLAYER_FIRE_TIME, it doesn't fire a missile.

virtual void fireMissile();

lastMoveTime

This method returns the last move time of the player. It is used by the room to not move the player too fast.

const std::chrono::system_clock::time_point &lastMoveTime() const;

Returns

A reference to the last move time of the player.

setLastMoveTime

This method sets the last move time of the player. It is used by the room to not move the player too fast.

void setLastMoveTime(const std::chrono::system_clock::time_point &lastMoveTime);

Parameters

  • lastMoveTime: The last move time of the player.

score

This method returns the score of the player.

int score() const;

Returns

The player's score.

setScore

This method sets the score of the player.

void setScore(int score);

Parameters

  • score: The player's score.

client

This method returns the client of the player.

std::shared_ptr<Client> client() const;

Returns

A shared pointer to the client of the player.