为什么说我没有直肠

时间:2018-08-14 08:28:53

标签: python attributes pygame sprite

我已输入代码self.rect = pygame.Rect(x, y, 100, 100)。有一个AttributeError: type object 'MobRow1' has no attribute 'rect'。当我插入rect时,为什么会不断弹出此错误。

我已经尝试过self.rect = pygame.Rect(self.x, self.y, 100, 100),但这仍然行不通。

        class MobRow1(pygame.sprite.Sprite):
            def __init__(self, x, y):
                pygame.sprite.Sprite.__init__(self)
                self.image = pygame.image.load(badguy_file).convert_alpha()
                self.image = pygame.transform.scale(self.image, (50, 50))
                self.x = x
                self.y = y
                self.rect = pygame.Rect(x, y, 100, 100)
                self.mask = pygame.mask.from_surface(self.image)

            def update(self):
                self.rect.y += self.speedy
                self.rect.x += self.speedx

1 个答案:

答案 0 :(得分:2)

您致电MobRow1.update(screen_rect),这将导致selfscreen_rect

因此,调用self.rect.y += self.speedy时,它将失败并显示AttributeError,因为self(即screen_rect实例)Rect不会具有rect属性。


您应该做的是在update的实例上调用MobRow1 ,而不是在MobRow1类本身上调用。另外,如果执行此操作,则必须向其update函数添加另一个参数,或者从函数调用中删除screen_rect参数。