【问题标题】:Basic Pygame Program Not Executing基本 Pygame 程序未执行
【发布时间】:2012-11-02 01:17:41
【问题描述】:

输入这个 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

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

【问题讨论】:

  • “不会执行”到底是什么意思?如果你从命令行运行,你会得到任何输出吗?程序挂起吗?如果在主循环中放置 print() 会发生什么?您应该做的一件事是将您的 set_mode 呼叫移出您的游戏循环。
  • 下次不要放不是代码的部分。将程序复制到窗口中以便您自己运行非常困难。

标签: python 2d pygame graphic


【解决方案1】:

当 pygame 出现错误时会发生什么,这就是我认为您所说的“不会执行”的意思。你必须点击 x 按钮来关闭它,错误将显示在 shell 中。在这个特定的程序上,错误是:

File "C:/Python32/projects/deletable.py", line 45, in <module>
    allsprites.draw (Surface)
NameError: name 'allsprites' is not defined

您可以自己处理问题,但事实就是如此。

【讨论】:

  • 问题是它实际上并没有显示错误,但是当我从命令行运行程序时,它不会运行。 @PygameNerd:但是 allsprites 被定义为 RenderPlain 类。
  • @user1792990 你用的是python 3.2还是python 2.7?
  • 我使用的是 python 2.7。但没关系,我发现了问题所在。感谢您的帮助
【解决方案2】:

抱歉,我犯了一个愚蠢的错误,定义了“main”函数,但从未执行它。谢谢大家。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多