Среда, 18 Декабря 2024, 05:28

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Как прервать поверку?
Nick_RimerДата: Среда, 13 Марта 2013, 09:54 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Вопрос ламерский, но у меня затуп..

Делал пример работы турели в помощь человеку, т.е. он такой чисто демонстрационный.
Требуется вкл/выкл передвижение игрока. Стоит поведение 8Direction.
Попробовал сделать через private variable (скриншот)
Сначала не понимал, почему ничего не работает, потом понял, что на самом деле всё работает, но сначала работает первый кусок, переменная меняется с 1 на 0, игнорируются нажатия на клаву. А затем тут же переменная меняется с 0 на 1, и нажатия на клаву перестают игнориться.

Что сделать, чтобы всё это не выполнялось подряд? Что-то я дико туплю, но я уже попробовал разные варианты.
Моя логика, должна пройти проверка, если нажат пробел и переменная = 1, то сделать по первому варианту, а если нажат пробел и переменная = 0, то надо проигнорировать первый вариант и выполнить по второму варианту, а получается, он все варианты прорабатывает как-то сразу, в итоге игрок не останавливается.
Быть может всё вообще проще, и остановить игрока можно иначе? Я не нашёл другого способа, кроме start/stop user input. Почему-то нельзя сделать проверку, типа 'is ignoring user input?', а было бы удобнее.


- Доброе утро, Агент Пи!
IzBePgДата: Среда, 13 Марта 2013, 10:54 | Сообщение # 2
Сейчас нет на сайте
Nick_Rimer, тоесть ты хочешь,что:
Если пробел нажат игрок ходит
Если не нажат,то игрок не ходит,пока снова не будет зажат пробел
Правильно понял?
Nick_RimerДата: Среда, 13 Марта 2013, 11:03 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
Нет, не ЗАжат, а НАжат. То есть пробел просто включает/выключает его способность ходить.
Я сделал локальную переменную hero.active, которая призвана отражать возможность передвижения игрока. 1 - можно ходить. 0 - нельзя ходить.

Теперь, когда мы нажали на пробел должно произойти следующее:
- если hero.active=1, то запретить передвижение и сделать hero.active=0
- иначе если же hero.active=0, то разрешить передвижение и сделать hero.active=1

Может надо где-то взять вот этот самый ELSE (иначе)? Не знаю, есть ли он, и как им пользоваться.


- Доброе утро, Агент Пи!
IzBePgДата: Среда, 13 Марта 2013, 11:12 | Сообщение # 4
Сейчас нет на сайте
Nick_Rimer, вот вроде сделал правильно
Тыц
LetsOffBrainsДата: Среда, 13 Марта 2013, 11:15 | Сообщение # 5
Project SoRDeLKa
Сейчас нет на сайте
Поставить Else и все тут, а вы...


Nick_RimerДата: Среда, 13 Марта 2013, 11:15 | Сообщение # 6
заслуженный участник
Сейчас нет на сайте
Всё! Я решил вопрос, тема закрыта! Сам про else вдруг вспомнил, нашёл, решил проверить, заработало! smile
Надо делать вот так: скриншот

IzBePg, спасибо за попытку помощи wink
LetsOffBrains, я ж говорю, тупняк с утра, не спал ночь..


- Доброе утро, Агент Пи!

Сообщение отредактировал Nick_Rimer - Среда, 13 Марта 2013, 11:16
  • Страница 1 из 1
  • 1
Поиск:

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