迷宫游戏 - 之前所说的墙壁没有定义,直到我将wall = []移出游戏循环(而True:)
class Wall (object):
def __init__(self,pos):
walls.append(self)
self.rect = pygame.Rect(pos[0], pos[1], 16, 16)
x = 0
y = 0
for row in level:
for col in row:
if col == 'W':
Wall((x, y))
if col == "E":
end_rect = pygame.Rect (x, y,16,16)
x = x + 16
y = y + 16
x = 0
答案 0 :(得分:2)
试试这个,你的一半代码应该是全局的,这是一个范围问题。有关详情,请参阅here。
class Wall (object):
def __init__(self,pos):
walls.append(self)
self.rect = pygame.Rect(pos[0], pos[1], 16, 16)
x = 0
y = 0
for row in level:
for col in row:
if col == 'W':
Wall((x, y))
if col == "E":
end_rect = pygame.Rect (x, y,16,16)
x = x + 16
y = y + 16
x = 0
基本上,类体中的代码是在创建类之前执行的;因此,您将无法在类范围内实例化给定类的对象。