Python 为什么我的游戏在循环运行时崩溃一次(Pygame)
我的代码:Python 为什么我的游戏在循环运行时崩溃一次(Pygame),python,python-3.x,pygame,Python,Python 3.x,Pygame,我的代码: def shop_button(self): click = pygame.mouse.get_pressed() if click[0] == 1: self.open_shop() # draws shop self.inshop = True while self.inshop: pygame.time.delay(10) mousepos = pygame.mou
def shop_button(self):
click = pygame.mouse.get_pressed()
if click[0] == 1:
self.open_shop() # draws shop
self.inshop = True
while self.inshop:
pygame.time.delay(10)
mousepos = pygame.mouse.get_pos()
if click[0] == 1 and b.mouse_on_button(mousepos[0], mousepos[1], b.escapex, b.escapex2, b.escapey, b.escapey2):
self.inshop = False
然而,每当你点击shop按钮时,该功能就会运行,而self.inshop在类似这样的if语句中,游戏会立即停止响应并崩溃。这可能是一个非常简单的解决方案,因为我是pygame和python语言的新手。然而,尽管如此,我似乎无法在其他任何地方找到解决方案 游戏不会崩溃,也不会响应,因为主应用程序循环中有一个循环。内部循环没有事件处理和显示更新
def shop_按钮(自):
# [...]
而self.inshop:
pygame。时间。延迟(10)
mousepos=pygame.mouse.get_pos()
# [...]
从内部缓存读取由返回的位置。当事件由或处理时,缓存将更新。这意味着,如果您在循环中检索位置,而不处理事件,则该位置不会反映当前鼠标位置,而是持续保持相同的位置,即在循环之前调用
pygame.event.get()
时的位置。此外,如果不通过或更新显示,则显示不会更改 如果有一个主应用程序循环,请使用它。主应用程序循环必须:
- 通过或处理事件
- 根据输入事件和时间(分别为帧)更新游戏状态和对象位置
- 清除整个显示或绘制背景
- 绘制整个场景(
所有对象)blit
- 通过或更新显示
从未实现嵌套的应用程序循环。您必须更改控制流和应用程序的设计 你怎么知道程序崩溃了?