Тема: map + camera
Показать сообщение отдельно
Старый 27.08.2013, 00:25   #3
DStalk
Разработчик
 
Аватар для DStalk
 
Регистрация: 27.06.2009
Адрес: Рязань-Москва
Сообщений: 471
Написано 401 полезных сообщений
(для 1,072 пользователей)
Ответ: map + camera

Лучше всего работать с тайлами - квадратные (или прямоугольные, или шестиугольные, как угодно) кусочки карты. Хранить можно в массиве, а на экран выводить только то что нужно.

Например завести переменные offset_x и offset_y, которые будут указывать текущее положение камеры, массив Map(n1,n2) содержит число, которое указывает на определенный тайл (трава, горы и т.п.). Предварительно в массив Images(n) загружаем изображения тайлов. На экран выводить двумя циклами:

;Будет выводиться кусок 10х10
for x=1 to 10
 for y=1 to 10
  Tile=Map(x+offset_x,y+offset_y)
  DrawImage Images(Tile),(x+offset_x)*20,(y+offset_y)*20
  ;20 - размер картинки тайла (например)
 next
next
Для определения положения объекта относительно камеры, вычитаем из его глобальных координат offset_x и offset_y.

Вот, в общих чертах... А вообще, используй поиск, эта тема уже поднималась, да и вообще исходники/уроки поищи
__________________
galaxies.su | dstalk.ru
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dranichek (27.08.2013)