Added inheritance for the screen system

basic edge detection for tile rendering
This commit is contained in:
Bram Verhulst
2024-04-04 13:49:38 +02:00
parent eb4c7b4d76
commit 71d364d9d8
23 changed files with 203 additions and 481 deletions

View File

@@ -39,8 +39,8 @@ WorldLevel::WorldLevel(Camera* camera, Rectf viewport): Level(camera),
default:
std::cout << "??" << '\n';
}
m_gridManager.SetTileAtIndex(x, y, new WorldTile { pos, type, TextureManager::GetInstance() });
m_gridManager.SetTileAtIndex(x, y, new WorldTile { pos, Tiles::DIRT, TextureManager::GetInstance(), &m_gridManager});
}
}
for (size_t x { 0 }; x < WORLD_WIDTH; ++x) {
@@ -64,8 +64,10 @@ void WorldLevel::Update(float elapsedSec) {
for (size_t x { 0 }; x < WORLD_WIDTH; ++x) {
for (size_t y { 0 }; y < WORLD_HEIGHT; ++y) {
m_gridManager.GetTileAtIndex(x, y)->m_Hightlight = false;
if (m_gridManager.GetTileAtIndex(x, y)->GetCollisionRect().Contains(m_mousePos)) {
selectedTile = m_gridManager.GetTileAtIndex(x, y);
selectedTile->m_Hightlight = true;
}
}
}
@@ -75,12 +77,18 @@ void WorldLevel::Update(float elapsedSec) {
}
}
m_player.Update(elapsedSec, *this);
WorldTile* t = m_gridManager.GetTileAtWorldPos(m_mousePos);
if (t != nullptr) {
t->SetTileType(Tiles::AIR);
//Get the diogonal tiles of the selected tile
if(selectedTile != nullptr) {
std::vector<WorldTile*> surroundingTiles = m_gridManager.GetSurroundingTiles(selectedTile);
for (WorldTile* tile : surroundingTiles) {
if (tile != nullptr) {
tile->m_Hightlight = true;
}
}
}
//m_player.Update(elapsedSec, *this);
Screen* screen = m_screenManager->GetCurrentScreen();
if (screen != nullptr) {