Python pygame窗口不断崩溃

Posted

技术标签:

【中文标题】Python pygame窗口不断崩溃【英文标题】:Python pygame window keeps crashing 【发布时间】:2013-12-09 06:27:54 【问题描述】:

每当我运行我的代码时,出现的 Python 窗口都不会响应。 我的代码有问题还是我必须重新安装 pygame 和 python? 我得到一个黑色的 pygame 窗口,然后它变成白色并说没有响应? 我也是新手,所以请尽可能简单。我试图到处寻找答案,但无法以我能理解的方式得到答案。 请帮帮我。谢谢:)

1 - 导入库

import pygame
from pygame.locals import *

2 - 初始化游戏

pygame.init()
width, height = 640, 480
screen=pygame.display.set_mode((width, height))

3 - 加载图片

player = pygame.images.load("resources/images/dude.png")

4 - 继续循环

while 1:
    # 5 - clear the screen before drawing it again
    screen.fill(0)
    # 6 - draw the screen elements
    screen.blit(player, (100,100))
    # 7 - update the screen
    pygame.display.flip()
    # 8 - loop through the events
    for event in pygame.event.get():
        # check if the event is the X button
        if event.type==pygame.QUIT:
            # if it is quit the game
            pygame.quit()
            exit(0)

【问题讨论】:

尝试放入 print 语句来找出它崩溃的地方,一个好的开始是在 while 循环之前放置一个,看看它是否在它停止工作之前到达那里。 如果if event.type--pygame.QUIT: 实际上在您的代码中,那么您确实有问题。您想使用== 而不是-- 我把它从 -- 改成了 == 但还是不行。我该怎么办? 它会给你一个错误信息吗? 顺便说一句:应该是 pygame.image.load 代替 pygame.images.load - image 没有 s 【参考方案1】:

不要导入pygame.locals。这实际上是不必要的,因为您已经在导入 pygame

另外,正如@furas 所说,应该是:

player = pygame.image.load("resources/images/dude.png")

不是:

player = pygame.images.load("resources/images/dude.png")

这将清除您代码中的一些问题。

【讨论】:

【参考方案2】:

根据我的个人经验,如果您从 IDLE 运行 pygame 代码,它通常根本没有响应。尝试将您的项目保存为 .py 文件,然后使用 python.exe 运行它。它总是对我有用。 正如furas所说,使用

player = pygame.image.load("resources/images/dude.png")

而不是

player = pygame.images.load("resources/images/dude.png")

【讨论】:

最佳答案!您必须编写 pygame 代码并将其保存到 .py 文件中。然后它工作。它使用 jupyter notebook 一直冻结,使用 python shell 时也冻结。运行 .py 文件就可以了!【参考方案3】:

用这个替换那个for循环

 while not done:
   for event in pygame.event.get():
     if event.type == pygame.QUIT:
       done = True

【讨论】:

以上是关于Python pygame窗口不断崩溃的主要内容,如果未能解决你的问题,请参考以下文章

创建一个背景为蓝色的pygame窗口

学习 Python 之 Pygame 开发坦克大战

学习 Python 之 Pygame 开发魂斗罗

python怎么运行pygame

python游戏库pygame经典教程

python学习pygame