最近我学会了一些基本的Python,所以我正在使用PyGame编写一个游戏来提高我的编程技能。
在我的游戏中,我想每隔3秒移动一个怪物图像,同时我可以用鼠标瞄准它并点击鼠标进行拍摄。
一开始我尝试使用 time.sleep(3),但事实证明它暂停了整个程序,我无法点击在3中拍摄怪物秒。
那你有什么解决办法吗?
提前致谢! :)
最后我在你们的帮助下解决了这个问题。非常感谢! 这是我的代码的一部分:
import random, pygame, time
x = 0
t = time.time()
while True:
screen = pygame.display.set_mode((1200,640))
screen.blit(bg,(0,0))
if time.time() > t + 3:
x = random.randrange(0,1050)
t = time.time()
screen.blit(angel,(x,150))
pygame.display.flip()
答案 0 :(得分:1)
Pygame有一个可用于代替python时间模块的时钟类。
以下是一个示例用法:
clock = pygame.time.Clock()
time_counter = 0
while True:
time_counter = clock.tick()
if time_counter > 3000:
enemy.move()
time_counter = 0
答案 1 :(得分:0)
我认为这样做有效,但我觉得这样做会更加pythonic。
import random, pygame
clock = pygame.time.Clock()
FPS = 26 #Or whatever number you want
loops_num = 0
while True:
screen = pygame.display.set_mode((1200,640))
screen.blit(bg,(0,0))
if loops_num % (FPS * 3) == 0:
enemy.move()
screen.blit(angel,(x,150))
pygame.display.flip()
loops_num += 1
clock.tick(FPS)
Bartlomiej Lewandowski说道,他的回答也很棒。