feat: add working shapes

This commit is contained in:
2021-11-22 19:15:32 +01:00
parent 1d7a8cc66b
commit 7fb357e9c8
5 changed files with 42 additions and 27 deletions

View File

@@ -265,13 +265,13 @@ void World::cleanDeadMobs() {
TowerPtr World::getTower(const glm::vec2& position) const {
for (TowerPtr tower : m_Towers) {
if (tower->getSize() == TowerSize::Big) {
if (tower->getX() - 2 <= static_cast<std::int32_t>(position.x) && tower->getX() + 2 >= static_cast<std::int32_t>(position.x) &&
tower->getY() - 2 <= static_cast<std::int32_t>(position.y) && tower->getY() + 2 >= static_cast<std::int32_t>(position.y)) {
if (tower->getCenterX() - 2.5f < position.x && tower->getCenterX() + 2.5f > position.x &&
tower->getCenterY() - 2.5f < position.y && tower->getCenterY() + 2.5f > position.y) {
return tower;
}
} else {
if (tower->getX() - 1 <= static_cast<std::int32_t>(position.x) && tower->getX() + 1 >= static_cast<std::int32_t>(position.x) &&
tower->getY() - 1 <= static_cast<std::int32_t>(position.y) && tower->getY() + 1 >= static_cast<std::int32_t>(position.y)) {
} else { // little tower
if (tower->getCenterX() - 1.5f < position.x && tower->getCenterX() + 1.5f > position.x &&
tower->getCenterY() - 1.5f < position.y && tower->getCenterY() + 1.5f > position.y) {
return tower;
}
}

View File

@@ -203,17 +203,17 @@ RenderData loadTowerModel(game::TowerPtr tower) {
float towerY, towerDY;
if (tower->getSize() == game::TowerSize::Little) {
towerX = tower->getX() - 1;
towerDX = tower->getX() + 2;
towerX = tower->getCenterX() - 1.5f;
towerDX = tower->getCenterX() + 1.5f;
towerY = tower->getY() - 1;
towerDY = tower->getY() + 2;
towerY = tower->getCenterY() - 1.5f;
towerDY = tower->getCenterY() + 1.5f;
} else {
towerX = tower->getX() - 2;
towerDX = tower->getX() + 3;
towerX = tower->getCenterX() - 2.5f;
towerDX = tower->getCenterX() + 2.5f;
towerY = tower->getY() - 2;
towerDY = tower->getY() + 3;
towerY = tower->getCenterY() - 2.5f;
towerDY = tower->getCenterY() + 2.5f;
}
std::vector<float> positions = {
towerX, towerY,