输入这个动画测试的pygame代码,我期待一些错误,但程序根本不会执行:
第一部分导入模块
import sys
import os
import pygame
from pygame.locals import *
初始化pygame
pygame.init ()
用于加载精灵图像文件的类,以及稍后的声音
class Processes (object):
@staticmethod
def load_image (imagefile):
image = pygame.image.load (imagefile)
return image, image.get_rect ()
精灵课
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
没有输出,这是我的问题。
答案 0 :(得分:0)
当pygame出现错误时会发生什么,我认为你的意思是“不会超越”。你必须垃圾邮件点击x按钮关闭它,错误将显示在shell中。在这个特殊程序上,错误是:
File "C:/Python32/projects/deletable.py", line 45, in <module>
allsprites.draw (Surface)
NameError: name 'allsprites' is not defined
你可以自己处理这些问题,但事情就是这样。
答案 1 :(得分:0)
抱歉,我犯了定义'main'函数的愚蠢错误,但从未执行过它。谢谢你们。