Модуль черепахи Python: нажатие кнопки доступно только в цикле, когда оператор if заполнен.Python

Программы на Python
Ответить
Anonymous
 Модуль черепахи Python: нажатие кнопки доступно только в цикле, когда оператор if заполнен.

Сообщение Anonymous »

Я пытаюсь улучшить игру в стиле «Перейти дорогу» (в рамках курса Python Анжелы Ю) с помощью определенных действий игрока, которые можно выполнить только ограниченное количество раз.
Первое, что я хотел реализовать, — это «Нитро», мгновенное увеличение скорости, которое расходуется при использовании. Игрок начинает с 0 нитро и получает одно за каждое второе набранное очко.
Сначала следующий код дает желаемый результат, нажатие пробела перед получением первой единицы нитро ничего не делает. Как только nitro достигает 1, оператор if больше никогда не закрывается, и игрок может использовать nitro произвольное количество раз. Функция Remove.nitro работает правильно и удаляет одну единицу нитро при каждом использовании, в результате чего встроенный нитро-тикер отображает отрицательные числа.
Я экспериментировал с добавлением функции печати внутри цикла он ведет себя так, как ожидалось (только начинает печатать, когда нитро достигает 1, и останавливается снова, когда оно падает ниже).
Почему функции onkeypress ведут себя по-другому?

Код: Выделить всё

while game_is_on:
screen.update()
time.sleep(.025)
screen.onkeypress(fun=player.move, key='Up')
if scoreboard.nitro >= 1:
screen.onkeypress(fun=player.nitro, key='space')
screen.onkeyrelease(fun=scoreboard.remove_nitro, key='space')
car_manager.drive()
Заранее спасибо

Подробнее здесь: https://stackoverflow.com/questions/770 ... ent-fullfi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»