Python 自己创建的游戏。Else分支在游戏结束后不执行

Python 自己创建的游戏。Else分支在游戏结束后不执行,python,if-statement,pygame,Python,If Statement,Pygame,我用PyGameZero和MUIDE创建了一个小游戏。玩家必须在一定时间内点击(收集)尽可能多的香蕉。每次收集香蕉时,一个新的香蕉会出现在任意位置 经过一段时间后,将出现一个新屏幕,显示已采集的香蕉数量信息。为此,我创建了一个If-Else语句,但程序不执行Else分支(除了将时间缩短1秒并关闭游戏窗口)。我不知道为什么。有人知道为什么不执行Else分支吗 来自随机导入randint 导入时间 导入pygame 高度=800 宽度=800 分数=0 剩余时间=10 香蕉=演员(“香蕉”) 猴子=

我用PyGameZero和MUIDE创建了一个小游戏。玩家必须在一定时间内点击(收集)尽可能多的香蕉。每次收集香蕉时,一个新的香蕉会出现在任意位置

经过一段时间后,将出现一个新屏幕,显示已采集的香蕉数量信息。为此,我创建了一个If-Else语句,但程序不执行Else分支(除了将时间缩短1秒并关闭游戏窗口)。我不知道为什么。有人知道为什么不执行Else分支吗

来自随机导入randint
导入时间
导入pygame
高度=800
宽度=800
分数=0
剩余时间=10
香蕉=演员(“香蕉”)
猴子=演员(“猴子”)
def draw():
screen.clear()
屏幕填充(“白色”)
香蕉画
猴子画
screen.draw.text(“收集的香蕉数量:”+str(分数),color=“black”,topleft=(10,10))
screen.draw.text(“Time:+str(Time_left),color=“black”,top left=(10,50))
def place_banana():
香蕉.x=randint(125790)
香蕉y=randint(186790)
猴子x=50
猴子y=740
def位于鼠标下方(位置):
全球得分
如果是香蕉碰撞点(位置):
分数=分数+1
放香蕉()
def update_time_left():
全球时间左
如果时间还剩:#wenn Zeit>0 Sekunden ist
时间左=时间左-1
其他:
屏幕填充(“粉色”)#代码未执行
游戏结束
放香蕉()
时钟。计划时间间隔(更新左时间,1.0)
def game_over():
屏幕填充(“粉色”)#代码未执行
全球时间左
消息=(“收集的香蕉数量”)#未执行代码
剩余时间=0
时间。睡眠(5.5)
退出

当然会执行代码,但您无法在显示屏上“看到”结果,因为在
屏幕填充(“粉色”)
之后(以及
时间。睡眠(5.5)
之前),显示屏不会更新。
您必须通过更新显示和处理事件(例如,在显示填充为粉红色后)

def game_over():
屏幕填充(“粉色”)
#[…]画其他东西(例如一些文字)
pygame.display.update()
pygame.event.pump()
时间。睡眠(5.5)
退出

如果您重新表述您的问题,可能会有所帮助。看起来您的else语句可以工作,但screen.fill(“粉色”)不能按预期工作。重新措辞将为您提供更直接、更相关的帮助。当然代码是执行的,但是在
屏幕之间。填充(“粉色”)
退出()
显示永远不会更新。我不知道
pygame
是如何工作的,但是
如果剩下的时间是真实的。这意味着,如果时钟在循环中没有完全命中
0
,则
否则
将永远不会执行。也就是说,如果从时间1到时间-0.00001,那么你永远不会退出游戏。如果
time\u left>0:。。。else:…
以明确排除负值。谢谢!是的,我忘了更新显示器。作为一个初学者,我不会考虑所有的事情。我改变了它,现在它工作了!