Четверг, 21 Ноября 2024, 17:09

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Движение объекта за видом
CreatingOverДата: Среда, 14 Августа 2013, 19:22 | Сообщение # 1
ColdGamedev
Сейчас нет на сайте
Блин.. По причине моей тупости уже и это не могу реализовать... Подскажите пожалуйста, как сделать чтоб объект двигался за видом, но оставался в том же углу экрана? cry

Я снова с вами:з
Возвращение легенды. (нет)
Dmi7ryДата: Среда, 14 Августа 2013, 19:25 | Сообщение # 2
почетный гость
Сейчас нет на сайте
например, так (код размещается в end step)
Код
x=view_xview[0]+смещение
y=view_yview[0]+смещение
LunarPixelДата: Среда, 14 Августа 2013, 19:25 | Сообщение # 3
старожил
Сейчас нет на сайте
В end step объекта:

Код
x=view_xview[0]
y=view_yview[0]


CreatingOverДата: Среда, 14 Августа 2013, 19:32 | Сообщение # 4
ColdGamedev
Сейчас нет на сайте
LunarPixel, а если в том углу этих объектов несколько? У меня тогда все кроме одного за границу комнаты уходят :С

Я снова с вами:з
Возвращение легенды. (нет)
KazerexДата: Среда, 14 Августа 2013, 21:43 | Сообщение # 5
был не раз
Сейчас нет на сайте
Как разница сколько объектов? Пользоваться

view'ами очень просто

[view_xview, view_yview] - Самаый верхний левый пиксель экрана.
[view_wview, view_hview] - Это рзмеры вида по горизонтале и по вертикале.

Отсюда выходит, что:
[view_xview+view_wview, view_yview+view_hview] - это самая нижняя точка
[view_xview+view_wview/2, view_yview+view_hview/2] - Середина экрана(вида)

И таким образом можно как угодно делать.
Например вывести квадрат 64х64 ровно по центру экрана(вида):
draw_rectangle(view_xview+view_wview/2-32, view_yview+view_hview/2-32, view_xview+view_wview/2+32, view_yview+view_hview/2+32, false)

room_width и room_height - ширина и высота всей комнаты.

То есть:
room_width=4000 room_height=3000
view_wview=640 view_hview=480 - Т.е. только лишь размер окна отображённого на экране
view_xview=0 и view_yview=0 изначально равны нулю, и как только вид комнаты начинает двигаться вниз то и они изменяются, можно так же воздействовать непосредственно на них, например:
if keyboard_check(vk_right) view_xview+=5 //При нажатии на стрелку Вправо сдвинуть экран на 5 пикселей вправо.

Так же обязательно прочитать про все функции в справке. Ещё поясню для неопытных:
view_xview[0] - это одно и тоже, что view_xview, когда работа идёт с одни видом, то можно не указывать квадратные скобки. Это реализовано так во многих элементах GML, а так же в других языках программирования, что M[0]=5 это тоже самое, что и M=5. Или M[0,4]=6 одинаково M[4]=6.
Обращение к объектам тоже происходит по этому же принципу player.x=3 тоже самое, что instance_find(player,0).x
У Объектов (и некоторые другие элементы, наример у View'ов тоже) есть что-то вроде порядковых номеров, и обращение к нулевому образцу происходит без указания индекса.


Сообщение отредактировал Kazerex - Четверг, 15 Августа 2013, 00:06
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг