Сообщение от Nikich
ну не знаю, ничего о камерах в 2Д в блитце я не слышал. Может есть сторонние библиотеки, но я ими не пользуюсь.
|
Ты же не хочешь сказать, что ждешь готовой команды "СоздайтеМнеКамеруВ2Д()"?
Это реализуется двумя-тремя операторами.
Дано:
-блоки, каждый имеет свои координаты относительно точки отсчета (0,0). Эти координаты изменяться НЕ БУДУТ.
-игрок, который тоже имеет координаты, относительно точки отсчета (0,0).
-воображаемая камера которая должна:
--висеть над тем местом, которое задано ее координатами (относительно точки отсчета (0,0))
--показывать соответствующие блоки
Координаты игрока будут совпадать с координатами камеры, в случае жесткой привязки (тогда игрок будет всегда по центру экрана)
Или немного плавать относительно координат камеры, если нужна плавная смена направления (камера "летает" за игроком).
Заводим две переменные: camera_x, camera_y
Все, осталось последнее - модифицировать то место программы, которое отвечает за рисование блоков на экране.
Ты ведь не рисуешь все блоки подряд? Ты наверняка рисуешь только те, которые должны быть видны на экране.
Вроде:
If block.x>0 and block.x<640 then
if block.y>0 and block.y<480 then
drawimage img_block, block.x, block.y
endif
endif
Надо изменить это условие примерно так:
If block.x>camera_x and block.x<(camera_x+640) then
if block.y>camera_y and block.y<(camera_y+480) then
drawimage img_block, block.x-camera_x, block.y-camera_y
endif
endif
Не так уж и сложно.