Всем привет. Наверно у каждого была ситуация, где хотелось добавить кнопку, которая будет что-то включать и при повторном нажатии это что-то выключать. Но лично у меня это раньше не получалось и приходилось делать 2 кнопки.
Так вот, я придумал такую систему.
Вы создаёте кнопку или спайт (на ваше усмотрение) и добавляете ему приватную переменную "onoff" (number), начальное значение 1.
Далее в создаём событие где при нажатии на кнопку к "onoff" добавляется 1 очко.
После, событие - если "onoff" равен 3, то "onoff" становиться 1.
Думаю вы поняли что дальше.
Если "onoff" равен 1, то что-то вкл.
Если "onoff" равен 2, то что-то выкл.
Хочу сказать что это я придумал сам и если Вы знаете способ проще, то прошу Вас рассказать мне о нём.
2 действия на 1 кнопке |
Сообщений: 7
• Страница 1 из 1
Я не понял, что рассказывалось автором данного решения, поэтому сделал следующим образом.
По сути, это тоже самое, но при этом переменная не привязана к объекту, что расширяет возможности.
0. Глобальная переменная служит показателем состояния (в данном случае, видимости объекта).
1. При нажатии на кнопку клавиатуры к переменной прибавляется 1, чтобы сменить состояние.
2. Если глобальная переменная равна 0, сделать объект невидимым.
3. Если глобальная переменная равна 1, сделать объект видимым.
4. Если глобальная переменная больше 1, сбросить её в 0.

Невидимые объекты на переднем плане, к слову, можно использовать для меню, не требующих управления, например, карты, статистики. Также можно на одну кнопку сделать не два действия, а сколько угодно последовательных действий.
[ спустя время ] Исправляюсь, с получением опыта:
1. Лучше использовать объектную переменную, чем глобальную или локальную, когда это возможно.
2. Инверсию всё же придётся делать в 2 операции, а не в 1, я такого способа не нашел.
3. Вместо "УказаниеНаОбъект"."Переменная" можно использовать Self."Переменная". Чтобы себя проверяла.

К тому же, есть значение переменной, Self."Переменная"= Self."Переменная"=0/1.
Понятия не имею, почему значение переменной Self."Переменная"=0/1 последовательно выбирает значение 0 и 1. Ноль разделить на единицу - это так работает только в детском Конструкторе 2.
Не пытайтесь повторить этого дома. Если вы разделите ноль на единицу - вы не получите переключатель.
Это является верным только в детском Конструкторе 2.
По сути, это тоже самое, но при этом переменная не привязана к объекту, что расширяет возможности.
0. Глобальная переменная служит показателем состояния (в данном случае, видимости объекта).
1. При нажатии на кнопку клавиатуры к переменной прибавляется 1, чтобы сменить состояние.
2. Если глобальная переменная равна 0, сделать объект невидимым.
3. Если глобальная переменная равна 1, сделать объект видимым.
4. Если глобальная переменная больше 1, сбросить её в 0.

Невидимые объекты на переднем плане, к слову, можно использовать для меню, не требующих управления, например, карты, статистики. Также можно на одну кнопку сделать не два действия, а сколько угодно последовательных действий.
[ спустя время ] Исправляюсь, с получением опыта:
1. Лучше использовать объектную переменную, чем глобальную или локальную, когда это возможно.
2. Инверсию всё же придётся делать в 2 операции, а не в 1, я такого способа не нашел.
3. Вместо "УказаниеНаОбъект"."Переменная" можно использовать Self."Переменная". Чтобы себя проверяла.

К тому же, есть значение переменной, Self."Переменная"= Self."Переменная"=0/1.
Понятия не имею, почему значение переменной Self."Переменная"=0/1 последовательно выбирает значение 0 и 1. Ноль разделить на единицу - это так работает только в детском Конструкторе 2.
Не пытайтесь повторить этого дома. Если вы разделите ноль на единицу - вы не получите переключатель.
Это является верным только в детском Конструкторе 2.
Trigger.capx
- (171.77 КБ) Скачиваний: 145
Сообщений: 7
• Страница 1 из 1
Вернуться в Другие уроки по Construct 2
Сейчас эту тему просматривают
Зарегистрированные пользователи: нет зарегистрированных пользователей