SFML C++ Строительство

решил сделать небольшую игру и я хочу сделать в ней строительство. Я использую тайл карту и я бы хотел узнать каким образом я могу осуществить строительство? Причем, оно должно выравниваться по тайлам (как по некой сетке). И как мне для этого нарисовать какое-то здание? Оно должно состоять из нескольких тайлов или можно нарисовать сплошное здание (одной картинкой)?

https://github.com/Cominta/pixeled-civil

На всякий, оставлю репозиторий со всем кодом


Ответы (1 шт):

Автор решения: KoVadim

У Вас есть функция TileMap::render, которая, как я понимаю, рисует тайлы на карте. Код, который "рисует" что то на карте, должен просто поменять содержимое нужных тайлов (в Вашем случае - текстуру - ...->sprite->setTexture(*this->texture);) и код отрисовки автоматически все отрисует.

То есть, "строительство" это просто изменение состояния тайла (или его спрайта). А код отрисовки уже сразу все отрисует.

Если здание занимает один тайл (одну клеточку), то тут все просто, если же тайл занимает несколько клеточек, то нужно просто подготовить несколько отдельных спрайтов с кусочками здания и правильно разместить. Да, тут возникает вопрос, а что делать, если два здания находятся рядом и "накладываются". Тут есть два варинта - либо просто отрисовывать поверх (то есть просто для одного здания будет использоваться только часть тайлов) либо просто не давать постоить так здания (очень популярная технология).

→ Ссылка