pygame NameError:name' wall'没有定义

时间:2015-03-04 19:47:24

标签: python pygame

迷宫游戏 - 之前所说的墙壁没有定义,直到我将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

1 个答案:

答案 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

基本上,类体中的代码是在创建类之前执行的;因此,您将无法在类范围内实例化给定类的对象。