forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=109)
-   -   map + camera (http://forum.boolean.name/showthread.php?t=18497)

dranichek 26.08.2013 23:53

map + camera
 
Доброго времени суток! :)

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

Буду очень благодарен, прошу объяснить подробно, если не затруднит

заранее благодарен

Randomize 27.08.2013 00:16

Ответ: map + camera
 
http://forum.boolean.name/showthread.php?t=3609

DStalk 27.08.2013 00:25

Ответ: 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.

Вот, в общих чертах... А вообще, используй поиск, эта тема уже поднималась, да и вообще исходники/уроки поищи:)

Черный крыс 27.08.2013 01:16

Ответ: map + camera
 
Глянь в сторону SetOrigin(x, y)


Часовой пояс GMT +4, время: 20:22.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot