我使用Pygame制作平台游戏,我尝试使用Class来绘制每个级别的平台。
这是Level01的类:
class Level01(Level):
def __init__(self):
Level.__init__(self)
walls = [[300, 600, 210, 70],
[500, 500, 210, 70]
]
for item in walls:
wall = Wall(item[0], item[1], item[2], item[3])
self.wall_list.add(wall)
此代码中的最后一行(self.wall_list.add(wall)似乎是我遇到错误的地方。它返回' AttributeError:' Wall'对象没有属性' add_internal'。
以下是Wall的课程:
class Wall(object):
def __init__(self, x, y, width, height):
super().__init__()
self.image = pygame.Surface([width, height])
self.image.fill(green)
self.rect = self.image.get_rect()
self.rect.x = x
self.rect.y = y
有人能帮助我吗?
编辑:这是Level类的代码:
class Level(object):
wall_list = None
enemy_sprites = None
def __init__(self):
self.wall_list = pygame.sprite.Group()
self.enemy_sprites = pygame.sprite.Group()
答案 0 :(得分:1)
在我看来wall_list
是Group
(或其中的任何子类),并且您尝试向其添加非Sprite
对象(提示:{{1}在所有添加的精灵上调用Group
。
如果您想在add_internal
课程中使用Group
,请Wall
继承Wall
。