基本的Pygame程序没有执行

时间:2012-11-02 01:17:41

标签: python 2d pygame graphic

输入这个动画测试的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

没有输出,这是我的问题。

2 个答案:

答案 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'函数的愚蠢错误,但从未执行过它。谢谢你们。