我是一名阿米图尔编码员,我最近开始使用pygame而且我已经编写了一些示例,我刚刚找到一个在执行时无法正确加载的示例。我很确定我已经正确地写了它,但我无法弄清楚为什么它不会运行。 我正在运行python 3.6和Pygame 1.9.3。*
*我知道pygame版本是1.9种,但我不知道最后一位数。
以下是代码:
# This just imports all the Pygame modules
import pygame
# This MUST BE the first thing you put into a program!
pygame.init()
# This tells pygame to open a windo 640 pixels by 480
screen = pygame.display.set_mode((640, 480))
# This is called a while loop
# This is the simplest form of an event loop
# This line procceses the window: Such as telling it to close when the user hits the Escape Key
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
running = False
# Y = DOWN
class Game(object):
def main(self, screen):
image = pygame.image.load('player.png')
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT:
return
if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
return
screen.fill((200, 200, 200))
screen.blit(image, (320, 240))
pygame.display.flip()
if __name__ == '__main__':
pygame.init()
screen = pygame.display.set_mode((640, 480))
Game().main(screen)
答案 0 :(得分:2)
我修改了你的代码,现在它就会运行了。我发现的主要问题是,您无法准确理解代码在运行时所执行的操作。
已解决的问题:
删除了无意义的while循环和pygame初始化,无论如何都是在程序执行开始时完成的。
取消缩进if __name__ == "__main__":
分支。这个分支从不属于类。在类中,您有方法和变量。 就是这样。
除了这些问题之外,代码还没有问题,但请确保在继续之前了解它的作用。
我希望这个答案对您有所帮助,如果您有任何其他问题,请随时在下面发表评论!
修改后的代码示例:
# This just imports all the Pygame modules
import pygame
class Game(object):
def main(self, screen):
image = pygame.image.load('player.png')
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT:
return
if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
return
screen.fill((200, 200, 200))
screen.blit(image, (320, 240))
pygame.display.flip()
if __name__ == '__main__':
pygame.init()
screen = pygame.display.set_mode((640, 480))
Game().main(screen)