Python 3.x 游戏障碍

Python 3.x 游戏障碍,python-3.x,pygame,Python 3.x,Pygame,我正在做一个Pygame游戏。游戏的前提是你必须避开从屏幕底部开始的障碍物,然后向上移动,以产生玩家摔倒的错觉。我已经有了一个玩家精灵,需要障碍类的帮助。当我尝试初始化我的障碍类时,我得到一个错误 class Obstable(pg.sprite.Sprite): def __init__(self, color, width): pg.sprite.Sprite.__init__(self) self.image = pygame.sur

我正在做一个Pygame游戏。游戏的前提是你必须避开从屏幕底部开始的障碍物,然后向上移动,以产生玩家摔倒的错觉。我已经有了一个玩家精灵,需要障碍类的帮助。当我尝试初始化我的障碍类时,我得到一个错误

class Obstable(pg.sprite.Sprite):
    def __init__(self, color, width):
            pg.sprite.Sprite.__init__(self)
            self.image = pygame.surface([width, 50])
            self.image.fill(black)
            self.rect = self.image.get_rect()
BLACK = (0,0,0)
obst1 = Obstacle(BLACK, 100)

该类名为Obstable,您将其实例化为障碍。简单的打字错误。
如果包含NameError异常,则会更容易。说我得到一个错误是没有帮助的。

首先,您的类被命名为Obstable。看到问题了吗?您需要将其更改为“障碍”。这应该可以解决第一个问题。一旦您解决了这个问题并运行了代码,您应该会遇到另一个错误

您的第二个问题似乎是您正在引用障碍类中未定义的变量

class Obstable(pg.sprite.Sprite):
def __init__(self, color, width):
        pg.sprite.Sprite.__init__(self)
        self.image = pygame.surface([width, 50])
        self.image.fill(black)
        self.rect = self.image.get_rect()
错误在这里:

self.image.fill(black)
变量black未定义。相反,您需要将black更改为self.color,但在此之前,必须初始化self.color。我为您修复了代码:

class Obstacle(pg.sprite.Sprite):
    def __init__(self, color, width):
            self.color = color
            pg.sprite.Sprite.__init__(self)
            self.image = pygame.surface([width, 50])
            self.image.fill(self.color)
            self.rect = self.image.get_rect()
BLACK = (0,0,0)
obst1 = Obstacle(BLACK, 100)

希望我的回答能对你有所帮助

看起来你想让我们为你写些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在海报已经试图自己解决问题时才提供帮助。演示这项工作的一个好方法是包括您迄今为止编写的代码、示例输入(如果有)、预期输出以及您实际获得的控制台输出、回溯等。。你提供的细节越多,你可能得到的答案就越多。检查和。我现在的问题是,当我尝试创建障碍物的实例时出错。我将编辑我到目前为止的代码。