输入此 pygame 代码进行动画测试,我预计会出现一些错误,但程序根本不会执行:
第一部分导入模块
import sys
import os
import pygame
from pygame.locals import *
初始化pygame
pygame.init ()
加载 Sprite 图像文件的类,然后是声音
class Processes (object):
@staticmethod
def load_image (imagefile):
image = pygame.image.load (imagefile)
return image, image.get_rect ()
Sprite 类
class Sprite (pygame.sprite.Sprite):
def __init__ (self):
pygame.sprite.Sprite.__init__ (self)
self.image, self.rect = Processes.load_image ('frame1.jpg')
简单的动画功能——让生活更轻松
def animation (self, key_event):
if key_event == K_DOWN:
self.rect.centery = self.rect.centery - 10
if key_event == K_UP:
self.rect.centery = self.rect.centery + 10
if key_event == K_RIGHT:
self.rect.centerx = self.rect.centerx + 10
if key_event == K_LEFT:
self.rect.centerx = self.rect.centerx - 10
return self.rect
主要功能:
def main ():
mecha = Sprite ()
allsprites = pygame.sprite.RenderPlain ((mecha, ))
游戏循环:
while True:
Surface = pygame.display.set_mode ((400, 400))
pygame.display.set_caption ('Animation Test')
for event in pygame.event.get ():
if event.type == KEYDOWN:
mecha.animation (event.key)
if event.type == QUIT:
pygame.quit ()
sys.exit (0)
allsprites.draw (Surface)
pygame.display.update ()
这是真正的“错误”
C:/Khan's Family/python/Bunnies Vs. Zombies/BvZ_Animtest.py
现在这里是输出:
(Nothing)
C:/Khan's Family/python/Bunnies Vs. Zombies
没有输出,这是我的问题。
最佳答案
当 pygame 出现错误时,它会发生什么,我认为你所说的“不会执行”是什么意思。您必须垃圾邮件单击 x 按钮将其关闭,错误将显示在 shell 中。在这个特定程序上,错误是:
File "C:/Python32/projects/deletable.py", line 45, in <module>
allsprites.draw (Surface)
NameError: name 'allsprites' is not defined
您可以自己处理问题,但事实就是如此。
关于python - 基本 Pygame 程序未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13187926/