Я пишу игру в Pygame, и мне нужно попытаться отключить одну из трех клавиш ввода на 2 секунды, время от времени. Теперь у меня много проблем с этим, и я потратил много времени на поиски метода в интернете. Вот код 'key_disable' на данный момент:
def key_disable(self):
disabled_period = 2000
timer = 0
alarm = alert_font.render("ALERT", False, (255, 0, 0))
x = randint(0, 2500)
if x < 25:
timer += 1
if timer <= disabled_period:
screen.blit(alarm, (74, 100))
return False
elif self.damage > 100:
return False
elif x > 26:
return True
И это используется в главном цикле событий, например:
keys_pressed = pg.key.get_pressed()
if rover.fuel > 0:
MarsRover.key_disable(rover)
if keys_pressed[pg.K_LEFT] and MarsRover.key_disable(rover) is True:
rover.move_left()
if keys_pressed[pg.K_RIGHT] and MarsRover.key_disable(rover) is True:
rover.move_right()
if keys_pressed[pg.K_SPACE] and MarsRover.key_disable(rover) is True:
thrust = Thrust('thrust.png', rover.rect.left + 31, rover.rect.bottom - 12)
thrust.rotated()
rover.Start_Engine()
screen.blit(thrust.image_rotated, thrust.rect)
pg.display.update()
Идея заключалась в том, что если функция возвращает False, то она отключает элементы управления на 2 секунды. Но это работает, только если я отключаю все элементы управления на несколько миллисекунд, а это не то, чего я хочу.
Я пробовал различные методы хранения времени, такие как модуль (извините за орфографию), например: if (current_time - start_time) % 2 == 0
. Кажется, ни один из методов, которые я пробую, не работает, и я всегда получаю один и тот же результат. Могу ли я получить какую-либо помощь?
Спасибо
Примечание: это для первого года проекта, спрашиваю, что было последним средством.