【发布时间】:2014-07-29 08:26:39
【问题描述】:
最近我学习了一些基本的 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()
【问题讨论】:
-
在另一个线程中使用
time.sleep(3)? -
如果您的游戏在循环中运行,那么只需在该循环中设置一个检查函数来检查
current_time = last_saved +3 : move, last_saved=current_time -
*
current_time >= last_saved + 3以防万一出现延迟并达到current - last = 4或类似名称。 -
+1 @indivisible 没有完全考虑清楚。 @Alex Ling
import datetime datetime.datetime.now()将为您提供当前时间。