问题描述
正如标题中所说,即使我已经使用 NameError
创建了一个块实例,我仍然收到一个 blocks = Blocks()
,表明块没有被定义
def setup_maze(level):
for y in range(len(level)):
for x in range(len(level[y])):
character = level[y][x]
screen_x = -288 + (x * 24)
screen_y = 288 - (y * 24)
# Check if it is an X representing a wall
if character == "X":
blocks.goto(screen_x,screen_y)
blocks.stamp()
# Add coordinates to wall list
walls.append((screen_x,screen_y))
if character == "P":
player.goto(screen_x,screen_y)
if character == "T":
treasures.append(Treasure(screen_x,screen_y))
# Check if it is E representing enemies
if character == "E":
enemies.append(Enemy(screen_x,screen_y))
# Check if it is G representing gate
if character == "G":
gates.append(Gate(screen_x,screen_y))
# Creating class instance
blocks = Blocks()
player = Player()
解决方法
缩进错误!
def setup_maze(level):
for y in range(len(level)):
for x in range(len(level[y])):
character = level[y][x]
screen_x = -288 + (x * 24)
screen_y = 288 - (y * 24)
# Check if it is an X representing a wall
if character == "X":
blocks.goto(screen_x,screen_y)
blocks.stamp()
# Add coordinates to wall list
walls.append((screen_x,screen_y))
if character == "P":
player.goto(screen_x,screen_y)
if character == "T":
treasures.append(Treasure(screen_x,screen_y))
# Check if it is E representing enemies
if character == "E":
enemies.append(Enemy(screen_x,screen_y))
# Check if it is G representing gate
if character == "G":
gates.append(Gate(screen_x,screen_y))
# Creating class instance
blocks = Blocks()
player = Player()
setup_maze(2) # call function; passing blocks and players is recommended instead of using global variables