Rename PositionInt

This commit is contained in:
Corentin Jabot 2021-07-05 11:46:49 +02:00
parent a5bf577e26
commit e4991ab1dd
14 changed files with 53 additions and 53 deletions

View File

@ -15,22 +15,22 @@ namespace Atlas {
clyde = 5,
};
constexpr PositionInt pacman_right_wide = { 0, 0 };
constexpr PositionInt pacman_right_narrow = { 1, 0 };
constexpr PositionInt pacman_closed = { 2, 0 };
constexpr PositionInt pacman_left_narrow = { 3, 0 };
constexpr PositionInt pacman_left_wide = { 4, 0 };
constexpr PositionInt pacman_up_wide = { 5, 0 };
constexpr PositionInt pacman_up_narrow = { 6, 0 };
constexpr PositionInt pacman_down_wide = { 7, 0 };
constexpr PositionInt pacman_down_narrow = { 8, 0 };
constexpr GridPosition pacman_right_wide = { 0, 0 };
constexpr GridPosition pacman_right_narrow = { 1, 0 };
constexpr GridPosition pacman_closed = { 2, 0 };
constexpr GridPosition pacman_left_narrow = { 3, 0 };
constexpr GridPosition pacman_left_wide = { 4, 0 };
constexpr GridPosition pacman_up_wide = { 5, 0 };
constexpr GridPosition pacman_up_narrow = { 6, 0 };
constexpr GridPosition pacman_down_wide = { 7, 0 };
constexpr GridPosition pacman_down_narrow = { 8, 0 };
constexpr PositionInt ghost_blue_frightened = { 0, 7 };
constexpr PositionInt ghost_blue_frightened2 = { 1, 7 };
constexpr PositionInt ghost_white_frightened = { 2, 7 };
constexpr PositionInt ghost_white_frightened2 = { 3, 7 };
constexpr GridPosition ghost_blue_frightened = { 0, 7 };
constexpr GridPosition ghost_blue_frightened2 = { 1, 7 };
constexpr GridPosition ghost_white_frightened = { 2, 7 };
constexpr GridPosition ghost_white_frightened2 = { 3, 7 };
constexpr PositionInt eyeSprite(Direction direction) {
constexpr GridPosition eyeSprite(Direction direction) {
int x = 0;
switch (direction) {
case Direction::RIGHT:
@ -52,7 +52,7 @@ namespace Atlas {
return { x, 6 };
}
constexpr PositionInt ghostSprite(Ghost ghost, Direction direction, bool alternative) {
constexpr GridPosition ghostSprite(Ghost ghost, Direction direction, bool alternative) {
assert(ghost >= Ghost::blinky && ghost <= Ghost::clyde && "Invalid Ghost");
int y = static_cast<int>(ghost);
int x = 0;
@ -78,12 +78,12 @@ namespace Atlas {
return { x, y };
}
constexpr PositionInt initialFrightened(int animationIndex) {
constexpr GridPosition initialFrightened(int animationIndex) {
return (animationIndex % 2) == 0 ? Atlas::ghost_blue_frightened2 : Atlas::ghost_blue_frightened;
}
constexpr PositionInt endingFrightened(int animationIndex) {
std::array<PositionInt, 4> positions = { Atlas::ghost_blue_frightened,
constexpr GridPosition endingFrightened(int animationIndex) {
std::array<GridPosition, 4> positions = { Atlas::ghost_blue_frightened,
Atlas::ghost_blue_frightened2,
Atlas::ghost_white_frightened,
Atlas::ghost_white_frightened2 };

View File

@ -86,8 +86,8 @@ bool Board::isWalkable(Position point, double position_delta, Direction directio
return pacman ? cell != Cell::wall : cell != Cell::wall && cell != Cell::pen;
}
std::vector<PositionInt> Board::initialPelletPositions() {
std::vector<PositionInt> positions;
std::vector<GridPosition> Board::initialPelletPositions() {
std::vector<GridPosition> positions;
for (int row = 0; row < ROWS; row++) {
for (int column = 0; column < COLUMNS; column++) {
if (board[row][column] == int(Cell::pellet))
@ -97,8 +97,8 @@ std::vector<PositionInt> Board::initialPelletPositions() {
return positions;
}
std::vector<PositionInt> Board::initialSuperPelletPositions() {
std::vector<PositionInt> positions;
std::vector<GridPosition> Board::initialSuperPelletPositions() {
std::vector<GridPosition> positions;
for (int row = 0; row < ROWS; row++) {
for (int column = 0; column < COLUMNS; column++) {
if (board[row][column] == int(Cell::power_pellet))

View File

@ -29,9 +29,9 @@ public:
[[nodiscard]] static bool isWalkable(Position point) ;
[[nodiscard]] static bool isInPen(Position point) ;
[[nodiscard]] static std::vector<PositionInt> initialPelletPositions() ;
[[nodiscard]] static std::vector<GridPosition> initialPelletPositions() ;
[[nodiscard]] static std::vector<PositionInt> initialSuperPelletPositions() ;
[[nodiscard]] static std::vector<GridPosition> initialSuperPelletPositions() ;
static Position initialPacManPosition() { return { 13.5, 23 }; }

View File

@ -58,7 +58,7 @@ void Canvas::renderMaze() {
void Canvas::renderPellets(const Pellets & pellets) {
Sprite pellet = getSprite(pellets.currentSprite());
std::vector<PositionInt> pelletPositions = pellets.currentPositions();
std::vector<GridPosition> pelletPositions = pellets.currentPositions();
for (const auto & pos : pelletPositions) {
renderSprite(pellet, { double(pos.x), double(pos.y) });
}
@ -66,7 +66,7 @@ void Canvas::renderPellets(const Pellets & pellets) {
void Canvas::renderSuperPellets(const SuperPellets & superPellets) {
Sprite pellet = getSprite(superPellets.currentSprite());
std::vector<PositionInt> superPelletPositions = superPellets.currentPositions();
std::vector<GridPosition> superPelletPositions = superPellets.currentPositions();
for (const auto & pos : superPelletPositions) {
renderSprite(pellet, { double(pos.x), double(pos.y) });
}
@ -98,13 +98,13 @@ void Canvas::renderScore(int score) {
}
void Canvas::renderLives(int lives) {
constexpr PositionInt liveSprite = Atlas::pacman_left_narrow;
constexpr GridPosition liveSprite = Atlas::pacman_left_narrow;
const int x = LEFT_MARGIN + MAZE_WIDTH + LEFT_MARGIN;
const int y = maze_texture.getSize().y;
Sprite pacmanSprite = getSprite(liveSprite);
for (int i = 0; i < lives - 1; i++) {
PositionInt pos{ x + i * pacmanSprite.getTextureRect().width, y };
GridPosition pos{ x + i * pacmanSprite.getTextureRect().width, y };
pacmanSprite.setPosition(pos.x, pos.y);
window.draw(pacmanSprite);
}
@ -114,7 +114,7 @@ Rect Canvas::windowDimensions() {
return { 0, 0, LEFT_MARGIN + MAZE_WIDTH + SCORE_WIDTH, TOP_MARGIN + MAZE_HEIGHT + BOTTOM_MARGIN };
}
Sprite Canvas::getSprite(PositionInt coordinate) const {
Sprite Canvas::getSprite(GridPosition coordinate) const {
sf::Sprite sprite;
sprite.setTexture(sprites_texture);
sprite.setTextureRect(sf::IntRect{ coordinate.x * DEFAULT_SPRITE_WIDTH,

View File

@ -42,7 +42,7 @@ private:
static sf::Texture loadTexture(std::string_view path);
static sf::Font loadFont(std::string_view path);
Sprite getSprite(PositionInt rect) const;
Sprite getSprite(GridPosition rect) const;
sf::RenderWindow window;
sf::Texture maze_texture;

View File

@ -38,7 +38,7 @@ void Ghost::reset() {
pos = startingPosition;
}
[[nodiscard]] PositionInt Ghost::currentSprite() const {
[[nodiscard]] GridPosition Ghost::currentSprite() const {
switch (state) {
default:
return Atlas::ghostSprite(spritesSet, direction, (animationIndex % 2) == 0);

View File

@ -17,7 +17,7 @@ public:
explicit Ghost(Atlas::Ghost spritesSet, Position startingPosition, Position scatterTarget);
[[nodiscard]] PositionInt currentSprite() const;
[[nodiscard]] GridPosition currentSprite() const;
[[nodiscard]] Position position() const;

View File

@ -4,7 +4,7 @@
PacMan::PacMan(const Board & board)
: pos(Board::initialPacManPosition()) {}
PositionInt PacMan::currentSprite() const {
GridPosition PacMan::currentSprite() const {
return eaten ? pacManAnimation.deathAnimationFrame(direction) : pacManAnimation.animationFrame(direction);
}

View File

@ -13,7 +13,7 @@ class PacMan {
public:
explicit PacMan(const Board & board);
[[nodiscard]] PositionInt currentSprite() const;
[[nodiscard]] GridPosition currentSprite() const;
[[nodiscard]] Position position() const;

View File

@ -1,6 +1,6 @@
#include "PacManAnimation.hpp"
PositionInt PacManAnimation::animationFrame(Direction direction) const {
GridPosition PacManAnimation::animationFrame(Direction direction) const {
switch (direction) {
case Direction::LEFT:
return left_animation[animation_position];
@ -16,8 +16,8 @@ PositionInt PacManAnimation::animationFrame(Direction direction) const {
}
}
[[nodiscard]] PositionInt PacManAnimation::deathAnimationFrame(Direction direction) const {
return PositionInt{ animation_position, 1 };
[[nodiscard]] GridPosition PacManAnimation::deathAnimationFrame(Direction direction) const {
return GridPosition{ animation_position, 1 };
}
void PacManAnimation::updateAnimationPosition(std::chrono::milliseconds time_delta, bool dead) {

View File

@ -10,8 +10,8 @@
class PacManAnimation {
public:
[[nodiscard]] PositionInt animationFrame(Direction direction) const;
[[nodiscard]] PositionInt deathAnimationFrame(Direction direction) const;
[[nodiscard]] GridPosition animationFrame(Direction direction) const;
[[nodiscard]] GridPosition deathAnimationFrame(Direction direction) const;
void updateAnimationPosition(std::chrono::milliseconds time_delta, bool dead);
void pause();
@ -19,8 +19,8 @@ public:
private:
uint8_t animation_position = 0;
double animation_position_delta = 0.0;
const PositionInt down_animation[4]{ Atlas::pacman_down_wide, Atlas::pacman_down_narrow, Atlas::pacman_closed, Atlas::pacman_down_narrow };
const PositionInt left_animation[4]{ Atlas::pacman_left_wide, Atlas::pacman_left_narrow, Atlas::pacman_closed, Atlas::pacman_left_narrow };
const PositionInt right_animation[4]{ Atlas::pacman_right_wide, Atlas::pacman_right_narrow, Atlas::pacman_closed, Atlas::pacman_right_narrow };
const PositionInt up_animation[4]{ Atlas::pacman_up_wide, Atlas::pacman_up_narrow, Atlas::pacman_closed, Atlas::pacman_up_narrow };
const GridPosition down_animation[4]{ Atlas::pacman_down_wide, Atlas::pacman_down_narrow, Atlas::pacman_closed, Atlas::pacman_down_narrow };
const GridPosition left_animation[4]{ Atlas::pacman_left_wide, Atlas::pacman_left_narrow, Atlas::pacman_closed, Atlas::pacman_left_narrow };
const GridPosition right_animation[4]{ Atlas::pacman_right_wide, Atlas::pacman_right_narrow, Atlas::pacman_closed, Atlas::pacman_right_narrow };
const GridPosition up_animation[4]{ Atlas::pacman_up_wide, Atlas::pacman_up_narrow, Atlas::pacman_closed, Atlas::pacman_up_narrow };
};

View File

@ -7,17 +7,17 @@ class Pellets {
public:
explicit Pellets(const Board & board);
[[nodiscard]] PositionInt currentSprite() const {
[[nodiscard]] GridPosition currentSprite() const {
return sprite;
};
[[nodiscard]] std::vector<PositionInt> currentPositions() const {
[[nodiscard]] std::vector<GridPosition> currentPositions() const {
return positions;
}
bool eatPelletAtPosition(Position p);
private:
const PositionInt sprite = { 1, 9 };
std::vector<PositionInt> positions;
const GridPosition sprite = { 1, 9 };
std::vector<GridPosition> positions;
};

View File

@ -7,7 +7,7 @@ struct Position {
double y;
};
struct PositionInt {
struct GridPosition {
int x;
int y;
};
@ -16,7 +16,7 @@ using Rect = sf::Rect<int>;
using Sprite = sf::Sprite;
inline bool operator==(const PositionInt & b, const Position & a) {
inline bool operator==(const GridPosition & b, const Position & a) {
return a.x == b.x && a.y == b.y;
}

View File

@ -7,17 +7,17 @@ class SuperPellets {
public:
explicit SuperPellets(const Board & board);
[[nodiscard]] PositionInt currentSprite() const {
[[nodiscard]] GridPosition currentSprite() const {
return sprite;
}
[[nodiscard]] std::vector<PositionInt> currentPositions() const {
[[nodiscard]] std::vector<GridPosition> currentPositions() const {
return positions;
}
bool eatPelletAtPosition(Position p);
private:
const PositionInt sprite = { 0, 9 };
std::vector<PositionInt> positions;
const GridPosition sprite = { 0, 9 };
std::vector<GridPosition> positions;
};