raven1891
Новичок
Репутация: 1
Offline
API: 8.0 Pro
Сообщений: 12
|
|
« : Февраль 03, 2011, 23:08:40 » |
|
Доброго времени суток. Потихоньку осваиваю GM8. Вот возник затык с созданием интерфейса в игре. Искал ответ, но что то ничего подходящего не нашел. Пытаюсь создать что то типа этого:
|----|-----------------------| | | | | i | G | | | | |----|-----------------------|
i - панель интерфейса с разными кнопочками, пимпами и пр. G - игровое поле, так сказать
Если делаю панель интерфейса, то при движении героя на игровом поле, то игровые объекты оказываются под панелью (т.к. она тоже спрайт), что не есть хорошо. Можно ли как то решить эту задачку? Ну что то типа одновременно отображать 2 комнаты, одна из них будет присутствовать всегда (интерфейс), вторая меняться по ходу игры... ну или еще как.
|
|
|
Записан
|
|
|
|
VeGaS
|
|
« Ответ #1 : Февраль 03, 2011, 23:10:34 » |
|
сделай глубину панели +1. И тогда она будет под всеми.
|
|
|
Записан
|
|
|
|
raven1891
Новичок
Репутация: 1
Offline
API: 8.0 Pro
Сообщений: 12
|
|
« Ответ #2 : Февраль 03, 2011, 23:24:01 » |
|
сделай глубину панели +1. И тогда она будет под всеми.
вроде немного не то... мне нужно что бы пространство закрываемое этой панелькой как бы не учитывалось, что бы туда не мог забежать AI mob, там по рандому не могло что то проспавниться, что бы там ничего не прорисовывалось. Можно конечно тупо вычитать размер панельки из общей игровой зоны, но я думаю может есть способы проще.
|
|
|
Записан
|
|
|
|
VeGaS
|
|
« Ответ #3 : Февраль 03, 2011, 23:25:48 » |
|
А, теперь вопрос ясен. Добавлено: Февраль 03, 2011, 23:29:55 Можно конечно тупо вычитать размер панельки из общей игровой зоны, но я думаю может есть способы проще. Чем тебе этот способ не подошёл?
|
|
|
Записан
|
|
|
|
Hummer
scio me nihil scire
GM Pro user
Репутация: 335
Offline
Пол: Награды:
API: Game Maker 8.0 Pro
Деятельность: GML, С++, OpenGL, Java. Бывший Директор бывшей школы GML
Сообщений: 2573
|
|
« Ответ #4 : Февраль 04, 2011, 05:38:47 » |
|
Нужно сделать игровое пространство и панель отдельными видами. И у мобов в событии пересечения границ виде поля - уходить обратно в поле
|
|
|
Записан
|
Есть вещи, которые нельзя объяснить. Для всего остального есть Справка Рандом-рандом-рандомище (с) C++ & OpenGL
|
|
|
raven1891
Новичок
Репутация: 1
Offline
API: 8.0 Pro
Сообщений: 12
|
|
« Ответ #5 : Февраль 04, 2011, 08:55:08 » |
|
А, теперь вопрос ясен. Добавлено: Февраль 03, 2011, 23:29:55 Можно конечно тупо вычитать размер панельки из общей игровой зоны, но я думаю может есть способы проще. Чем тебе этот способ не подошёл? Да в принципе способ нормальный, просто думал вдруг есть более простой способ. Нужно сделать игровое пространство и панель отдельными видами. И у мобов в событии пересечения границ виде поля - уходить обратно в поле
Вот это у же интереснее, а можно где-нить про виды подробно почитать, с примерами использования, а то я чето не очень пока в них разобрался, можно и на аглицком? У меня сейчас только 1 view который следует за глав героем.
|
|
|
Записан
|
|
|
|
Alcatraz
|
|
« Ответ #6 : Февраль 04, 2011, 09:18:01 » |
|
поробуй так: создай объект, задай спрайт панели у спрайта выстави позицию(крестик) на 0,0 в create: x=view_xview y=view_yview у игрового объекта в событии столкновения с рамкой: x=xprevious y=yprevious
|
|
|
Записан
|
|
|
|
Dva_Kota
|
|
« Ответ #7 : Февраль 04, 2011, 11:53:18 » |
|
Не нужно делать два вида. На сколько я понял у тебя видна сразу вся комната (не используешь виды). Второй вид тут не к чему. Сделай панель обычным твердым объектом, поставь ему свойства как у стены (если в игре есть стены) - мобы и игрок не смогут походить под панель. При рендомном спавне вычитай ширину панели из ширины комнаты, или создавай объекты с проверкой свободно ли место где будет создаваться объект (как написано в справке): { while (!place_free(x,y)) { x = random(room_width); y = random(room_height); } } Ну тлько ширину комнаты замени на random_range(ширина_панели,room_width+ширина_панели)
|
|
|
Записан
|
|
|
|
raven1891
Новичок
Репутация: 1
Offline
API: 8.0 Pro
Сообщений: 12
|
|
« Ответ #8 : Февраль 04, 2011, 12:53:58 » |
|
Не нужно делать два вида. На сколько я понял у тебя видна сразу вся комната (не используешь виды). Второй вид тут не к чему. Сделай панель обычным твердым объектом, поставь ему свойства как у стены (если в игре есть стены) - мобы и игрок не смогут походить под панель. При рендомном спавне вычитай ширину панели из ширины комнаты, или создавай объекты с проверкой свободно ли место где будет создаваться объект (как написано в справке):
Виды использую, сразу виден только кусок комнаты. Но вроде бы разобрался как чего сделать. Просто видимо пока еще не мыслю "объектами и приемами" GMакера =)
|
|
|
Записан
|
|
|
|
Dva_Kota
|
|
« Ответ #9 : Февраль 04, 2011, 13:22:44 » |
|
Если виды есть, то можно бъект "интерфейс" двигать вместе с видом
|
|
|
Записан
|
|
|
|
|