pacman/lib/include/Position.hpp

48 lines
966 B
C++
Raw Normal View History

2021-06-10 12:42:51 +00:00
#pragma once
2020-11-27 13:10:09 +00:00
2021-07-06 10:55:58 +00:00
#include <cmath>
#include <SFML/Graphics.hpp>
2021-06-16 11:59:16 +00:00
2021-07-05 12:10:01 +00:00
namespace pacman {
2020-11-27 13:10:09 +00:00
struct Position {
2021-07-05 09:40:10 +00:00
double x;
double y;
2020-11-27 13:10:09 +00:00
};
2021-06-16 11:59:16 +00:00
2021-07-05 09:46:49 +00:00
struct GridPosition {
2021-07-06 10:35:23 +00:00
size_t x;
size_t y;
constexpr GridPosition(size_t x, size_t y) : x(x), y(y) {}
};
using Rect = sf::Rect<int>;
using Sprite = sf::Sprite;
2021-07-06 10:35:23 +00:00
inline GridPosition positionToGridPosition(Position pos) {
return { size_t(std::round(pos.x)), size_t(std::round(pos.y)) };
}
constexpr bool operator==(const GridPosition & a, const GridPosition & b) {
2021-07-05 11:54:54 +00:00
return a.x == b.x && a.y == b.y;
}
2021-07-06 10:35:23 +00:00
constexpr bool operator==(const GridPosition & a, const Position & b) {
2021-06-16 11:59:16 +00:00
return a.x == b.x && a.y == b.y;
}
2021-07-06 10:35:23 +00:00
constexpr bool operator==(const Position & a, const Position & b) {
return a.x == b.x && a.y == b.y;
}
2021-07-06 10:35:23 +00:00
constexpr bool operator!=(const Position & a, const Position & b) {
return !(a == b);
}
2021-07-05 12:10:01 +00:00
2021-07-06 10:35:23 +00:00
constexpr bool operator!=(const GridPosition & a, const GridPosition & b) {
2021-07-05 15:19:35 +00:00
return !(a == b);
}
2021-07-05 12:10:01 +00:00
} // namespace pacman