Среда, 18 Декабря 2024, 08:52

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Интерфейс и нажатие конопок
RenusДата: Четверг, 21 Августа 2014, 20:57 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Добрый вечер комрады.
Столкнулся с такой сложностью, есть игровые объекты строения, юниты там разные, не важно, при нажатии на них выскакивает их меню с кнопками улучшения, продажи и т.д. Менюшка и кнопки рисуются чуть выше объекта, но если под кнопкой оказался другой объект, другой юнит к примеру, то при нажатии начинаются вакханалии, срабатывает и кнопка и переключение на другой обьект и запуск его меню и т.д...
Как сделать что бы нажимались только кнопки? Верхний слой так сказать, что бы в пределах меню не срабатывали нажатия на другие объекты?

Можно писать код для каждого объекта что бы если какое то меню есть то нажатия на него не работали или сделать маус контроллер, который сам определять на что было нажато в какой зоне и т.д. Мне кажется такая проблема выскакивает при написании любых стратегий, рпг и т.п.
Подскажите как решить... спс.
Fill_FreemanДата: Пятница, 22 Августа 2014, 09:20 | Сообщение # 2
почетный гость
Сейчас нет на сайте
Цитата Renus ()
Можно писать код для каждого объекта что бы если какое то меню есть то нажатия на него не работали или сделать маус контроллер, который сам определять на что было нажато в какой зоне и т.д. Мне кажется такая проблема выскакивает при написании любых стратегий, рпг и т.п.
Подскажите как решить... спс.


Я именно так решал (или собирался решить) подобную проблему. Алгоритм что-то вроде этого:
Есть глобальная переменная Меню_Открыто(true\false) и при клике смотрю, если true, то был ли клик в границе меню или нет. Если да, то работаю с меню, если нет, то закрываю его.
Что-то вроде этого.


XDominatorДата: Пятница, 22 Августа 2014, 11:26 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
Вообще довольно сложный момент, в свое время помню как то его решал, но как точно не помню smile Что могу посоветовать, при глобальном левом клике проверять, есть ли объект-менюшка. Если менюшки нет - работаем как обычно. Если менюшка есть и достаточно близко к точке клика(т.е. потенциально игрок может работать с менюшкой - тогда работаем с менюшкой и игноируем клик другими объектами. соответственно игнорирование должно проверятся в каждом отдельном объекте для корректной работы, установкой глобальных переменных тут не ограничиться мне кажется, потому что мы не можем управлять порядком обработки коллизий, к сожалению. Если клик далеко от нее - выключаем менюшку и работаем как обычно.

Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
RenusДата: Пятница, 22 Августа 2014, 16:34 | Сообщение # 4
почетный гость
Сейчас нет на сайте
Да, встал сегодня со свежей головой и проблема решилась за пару часов))
XDominator, на сколько я знаю глобальные клики обрабатываются после кликов по объекту, поэтому так проверять не получиться...

Решил не делать глобальный маус контроллер, а просто повставлять код в нужные объекты, используя родительские пустышки, вообще довольно удобно что есть хоть какое то подобие ООП, хотя отсутствие возможности создавать методы обьектам, очень сильно напрягает.
Вот код на клик в родительском обьекте для которого вылазит меню:
  • Страница 1 из 1
  • 1
Поиск:

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