Как запретить нажатие объектов?

техническая поддержка по Construct 2

Сообщение Как запретить нажатие объектов?
» 09 сен 2018, 13:12

У меня при создании одного объёкта над другим получается так, что нажатие на верхний объект приводит и к нажатию на объект который под ни (маска колизии - квадрат).
Вопросы:
1. Можно ли сделать, что бы действие применялось только к верхнему объекту, который перекрывает остальные объекты с событиями (Действие клик или тач)?
2. Или, можно ли заблокировать нажатие на все остальные объект?
Аватара пользователя

Участник
Сообщений: 44
Я тут с 25 июл 2018
Репутация 0 [ ? ]


Сообщение Как запретить нажатие объектов?
» 10 сен 2018, 15:12

Bishop,Спасибо!
Аватара пользователя

Участник
Сообщений: 108
Я тут с 10 фев 2016
Репутация 2 [ ? ]

Сообщение Как запретить нажатие объектов?
» 10 сен 2018, 16:04

Bishop писал(а): Вчера, 14:09


Это, что имеется ввиду поднять наверх слоя или после события вида Touch надо добавить ещё это, что бы понять какой экземпляр выбрать?
Аватара пользователя

Участник
Сообщений: 44
Я тут с 25 июл 2018
Репутация 0 [ ? ]

Сообщение Как запретить нажатие объектов?
» 10 сен 2018, 19:45

cheiwe, при касании спрайта мы выбираем тот, который выше по оси Z. Не надо никаких слоев и перемещений.
Аватара пользователя

Игродел
Сообщений: 1299
Я тут с 06 июл 2015
Репутация 321 [ ? ]

Сообщение Как запретить нажатие объектов?
» 11 сен 2018, 01:07

Bishop писал(а):cheiwe, при касании спрайта мы выбираем тот, который выше по оси Z. Не надо никаких слоев и перемещений.


Либо, я не понял, как применять, либо не работает.
Пожалуйста помогите разобраться.
Проект (исходный) приложил к посту.


Пример:
1. Кликаю сюда:

Изображение

2. Происходит выделение кликнутого объекта a'ля лайтбокс.

Изображение

3. Кликаю в пустоту. Точнее кликаю по чёрному объекту с полупрозрачностью, имитирующим затенение.

Изображение

4. Код при этом выглядит так:

Изображение

5. Срабатывает 2 клика. На полупрозрачном объекте — он исчезает. А также на синем квадрате, в результате чего там появляется новый объект.

Изображение

Второй сценарий должен срабатывать если кликнуть непосредственно по синему квадрату, но в данном случае, этого не должно было произойти, т.к. мы кликали по находящемуся выше полупрозрачному объекту подложке.

Что я делаю не так?


p.s. Если долго удерживать клик, то есть делать полноценный Touch, тогда исчезает подложка и новый инстанс объекта со стариками не появляется. Но, если просто сделать короткий клик (аналог Tap), то срабатывают оба сценария. Как убрать Tap? Если поменять у синего квадрата Tap на Touch, то срабатывает только появления второго инстанса, а подложка не исчезает.
123.capx
(1.12 МБ) Скачиваний: 6
Аватара пользователя

Участник
Сообщений: 44
Я тут с 25 июл 2018
Репутация 0 [ ? ]

Сообщение Как запретить нажатие объектов?
» 11 сен 2018, 13:33

Да много способов есть, в том числе и костыльные. Я так понял, у тебя по ходу дела по определенным условиям меняются свойства объектов, и кликабельным должен быть только верхний? Так задай им внутреннюю переменную (что-нить вроде clickable 0/1) и назначай по этим условиям. Если переменная 1 - спрайт реагирует на нажатие, если 0 - нет.
Переменную можно и булевую, но тогда может быть только 2 свойства, а вдруг понадобится еще что-то добавить, и ради этого еще одну создавать?
Все люди в мире делятся на 10 категорий: тех, кто понимает двоичную систему, и тех, кто - нет.
Идёт работа: CityMoles
Аватара пользователя

Игродел
Сообщений: 815
Я тут с 13 мар 2017
Репутация 123 [ ? ]

Сообщение Как запретить нажатие объектов?
» 11 сен 2018, 14:41

VedebellO писал(а):Я так понял, у тебя по ходу дела по определенным условиям меняются свойства объектов

Из свойств только видимость вроде переключается у объектов (цветные квадраты и красные треугольники) и всё. А сами кликабельные объекты своих свойств не должны менять.

Сам факт того, что можно кликнуть на перекрытый объект мне непонятен и удивителен.
Аватара пользователя

Участник
Сообщений: 44
Я тут с 25 июл 2018
Репутация 0 [ ? ]

Сообщение Как запретить нажатие объектов?
» 12 сен 2018, 08:36

VedebellO писал(а):Да много способов есть, в том числе и костыльные. Я так понял, у тебя по ходу дела по определенным условиям меняются свойства объектов, и кликабельным должен быть только верхний? Так задай им внутреннюю переменную (что-нить вроде clickable 0/1) и назначай по этим условиям. Если переменная 1 - спрайт реагирует на нажатие, если 0 - нет.
Переменную можно и булевую, но тогда может быть только 2 свойства, а вдруг понадобится еще что-то добавить, и ради этого еще одну создавать?


Логика с переменными понятна. А вот собственно, как запретить само нажатие? Разве есть такое событие?
Не могли бы вы простейший пример сделать с 2мя квадратами, где ясно будет как сам запрет объявить \ снять?
Спасибо!
Аватара пользователя

Участник
Сообщений: 44
Я тут с 25 июл 2018
Репутация 0 [ ? ]

Сообщение Как запретить нажатие объектов?
» 12 сен 2018, 14:00

cheiwe, Такой результат нужен ?
Изображение

У тебя довольно путано всё в событиях, вернее логика взаимодействия не совсем верна. Использование Семей сильно бы всё упростило, тем более картинок Аватарок у тебя будет много. Без Семей в дальнейшем будет тяжело. Но сделал пока без них.

Пульки вылетающие из углов уж сам спрячешь, или что там с ними надо делать, по аналогии

С тебя пиво :biggrin:

 Пришлось добавить Такое:
Изображение
чтобы все остальные спрайты не относящиеся к Нажатому прятать, а нажатый активировать с принадлежащеми к нему спрайтам

И использую Тап. А не Тач. Ну и Тап по Фэйд экрану нужно поставить НИЖЕ Тапа по Комнате
Изображение
123_fix.capx
(1.12 МБ) Скачиваний: 7
Изображение Изображение
Аватара пользователя

Игродел
Сообщений: 2324
Я тут с 26 сен 2013
Откуда: Екб
Двиг: C2
VK: indiewolf_game
Репутация 285 [ ? ]



Вернуться в Вопрос-Ответ по Construct 2

Сейчас эту тему просматривают

Зарегистрированные пользователи: нет зарегистрированных пользователей

Наверх