【发布时间】:2020-11-22 19:53:18
【问题描述】:
我有一个游戏,你要与 AI 对战。 pygame 的主循环如下所示:
def main():
running = True
while running:
# Some code here.....
if move_made == True:
move = ai_make_move(gamestate)
这里的问题是ai_make_move() 需要大约 10-15 秒来计算。在此期间,pygame 窗口冻结,因为主循环在ai_make_move() 准备好之前不会更新。有没有办法在后台进行计算并保持主 pygame 循环以某种方式运行?这样我就可以例如在计算期间移动窗口。
【问题讨论】:
-
ai_make_move()可以在单独的线程中执行吗? -
@Rabbid76,当然,如果我知道该怎么做:)
-
这能回答你的问题吗? Spawning a thread in python
-
另一个选项是优化您的 ai_make_move() 函数,使其不需要 10-15 秒。也许你可以逐步完成你的动作,每个循环一点点,而不是一次性完成。