在Python(OpenGL)中暂停并重新启动游戏



我仍然是Python和OpenGL的新手。我编写了一个简短的代码,可以在z轴上移动汽车,这是我的全编写代码

我想做的是在用户击中" P"时暂停游戏,在" r"时重新启动并在" q"时退出程序...戒烟正常工作,但我既不能重新启动也可以暂停游戏我所有的试验,这是我写的一部分,以考虑所有情况:

def keyboard (key,x,y):
  if key == b"q" :
    sys.exit(0)
  if key == b"r" :
    restart_program()
  if key == b"p":
    pause ()

P.S。:我尝试了Pygame Liberary,但它无法正常工作

有帮助吗?

请参阅我的评论中的链接,以获取更完整的暂停方式,但您也可以将绘图代码重构为:

的行
elapsed_time = 0
paused = False
def update():
  start_time = time.time()
  if key == b"r" :
    paused = False
  if key == b"p":
    paused = True
  if paused:
    elapsed_time = time.time() - start_time
  else:
    elapsed_time = 0
  UpdateAllTheThings(elapsed_time)
while True:
  update()

然后,在更新系统的所有活动部件时,您将需要将每个移动扩展到通过的时间。通过具有单独的update()函数,该函数将经过的时间作为参数,您可以通过传递0模拟暂停。游戏状态的系统使它变得更加健壮和可扩展,值得学习。

最新更新