Я работаю над типом игры в галактике, используя pygame и livewires. Однако в этой игре вместо врага есть воздушные шары, которые вы стреляете. Каждые 25 щелчков мыши, у меня есть воздушные шары, перемещающиеся вниз, используя свойство dy, установленное в значение 1. Если воздушный шар достигает дна, игра заканчивается. Тем не менее, у меня есть некоторые проблемы с выяснением, как заставить это работать только, скажем, 1 секунду или 2 секунды. Поскольку у меня нет возможности «времени» получить результаты, значение dy на неопределенный срок устанавливается равным 1. Поэтому после первых 25 щелчков строка просто продолжает двигаться вниз. Это нормально, но, как я уже сказал, это не мой намеченный результат.Выполнение определенной части кода за определенное количество времени
Вот код, который я до сих пор для этого действия:
if games.mouse.is_pressed(0):
new_missile = missile(self.left + 6, self.top)
games.screen.add(new_missile)
MISSILE_WAIT = 0 #25
CLICKS += 1
if CLICKS == 25:
SPEED = 1
CLICKS = 0
КЛИКОВ и MISSILE_WAIT глобальные переменные, которые создаются и устанавливают в исходное значение 0 до этого блока кода. То, что я пытаюсь выяснить, - это алгоритм, который следует поставить под оператором if CLICKS. Я просмотрел документацию python в модуле времени, но просто не могу найти ничего, что бы соответствовало этой цели. Кроме того, я не думаю, что использование цикла while будет работать здесь, потому что компьютер проверяет эти результаты мгновенно, в то время как мне нужен фактический таймер.
Вы можете иметь таймер повтора вызова функции. Но я думаю, что вы действительно хотите нажать на клик, который вы должны использовать событие click. Комбинация с pygame.time.get_ticks – ninMonkey
По существу, я пытаюсь найти способ переместить спрайт с помощью свойства dy в течение 1 секунды. Я возился с функциями pygame.time, но не мог заставить их работать. – emufossum13