1

我正在用 Pygame 编写一个简单的游戏,但遇到了一个令人讨厌的错误。我将一堆与绘制运动矢量相关的代码分组到两个单独的函数中,每个函数一个。

from __future__ import division
import math
import sys
import pygame


class MyGame(object):
    def __init__(self):
        pass

    def cat_chase():
        # bunch of code here

    def dog_chase():    
        # more code

    def run(self):
        # event handling           

    def draw(self):
        """Update the display"""
        self.screen.fill(self.bg_color)

        self.cat_chase()
        self.dog_chase()


        pygame.display.flip()

MyGame().run()
pygame.quit()
sys.exit()

然后,我得到的错误是:

    NameError: global name 'cat_chase' is not defined

我想知道为什么 cat_chase 没有定义?提前致谢。

4

1 回答 1

4

为您的方法添加self参数:

def cat_chase(self):
    ...

def dog_chase(self):
    ...

因此,您可以将其称为:

obj.cat_chase()
于 2013-11-10T22:14:57.330 回答