Python pygame中的暂停系统
大家好,我花了几个小时试图在pygame中切换暂停,你按空格键,它暂停,然后你再按空格键取消暂停,我运气不好,有人能帮我吗Python pygame中的暂停系统,python,time,pygame,Python,Time,Pygame,大家好,我花了几个小时试图在pygame中切换暂停,你按空格键,它暂停,然后你再按空格键取消暂停,我运气不好,有人能帮我吗 ############### 2nd attempt ############# global timedelay timedelay = pygame.time.wait (0) pause = 0 if event.type == KEYUP: if event.key == K_p
############### 2nd attempt #############
global timedelay
timedelay = pygame.time.wait (0)
pause = 0
if event.type == KEYUP:
if event.key == K_p and pause == 0:
timedelay = pygame.time.wait (9999)
pause = 1
if event.key == K_p and pause == 0:
timedelay = pygame.time.wait (0)
pause = 0
timedelay
############### 1st attempt #############
if event.type == KEYDOWN:
pause = 0
if event.key == K_p and pause == 0:
while 1:
pause = 0
event = pygame.event.wait()
pause = 1
if event.type == KEYDOWN:
if event.key == K_p and pause == 0:
print "woo!"
pause = 0
break
不要阻止整个主循环运行,只需跳过循环的状态更改部分。您仍然需要能够响应事件,或者您的应用程序“无响应”。您还希望继续绘制,因为窗口可以移动,覆盖您的游戏,屏幕仍需要刷新。因此:
game_over = False
paused = False
while not game_over:
# handle events
for event in pygame.event.get():
if event.type == KEYDOWN:
paused = False
if event.key == K_p:
paused = True
...
if not paused:
# handle game state change
# handle screen drawing
pygame.display.flip()
我将如何改变游戏状态?使用上面的等待功能?不,我说的是你的游戏代码。一般来说,人们将主要的游戏循环分为三个步骤,“处理事件”、“更改游戏状态”和“绘图”。暂停时,您不希望停止游戏处理事件或绘图,您只希望每次绘制的内容相同。因此,您跳过了推进游戏的游戏逻辑。例如,移动角色或对象,推进计时器,etci问我如何让游戏停止?像等待函数
pygame.time.wait()
正在休眠整个程序,这正是我要说的不要做的pygame.event.wait()
也只是让程序休眠,直到事件可用,在这里不是非常有用。你不希望程序停止,你希望游戏停止前进。啊,所以我需要冻结移动的对象(我正在修改蛇游戏顺便说一句)