我尝试使用pygame制作游戏,并且我已经设置了一些我已经测试过的功能,并且它们运行良好。但是,在下面的代码中,当我添加一个print语句来显示我的代码是否有效时,它会在第一个而不是第二个上打印。有什么帮助吗?
for square in row:
tile_x = row.index(square)
# print statement works here
if self.x_pos - tile_x >= -4 and self.x_pos - tile_x <= 4:
tile_x = 4 - (self.x_pos - tile_x)
tile_y = 4 - (self.y_pos - tile_y)
if square == 'G':
display('Grass',tile_x,tile_y)
# print statement doesn't work here
elif square == 'T':
display('Tree',tile_x,tile_y)
elif square == 'B':
display('Bush',tile_x,tile_y)
elif square == 'R':
display('Rock',tile_x,tile_y)
elif square == 'S':
display('Stone',tile_x,tile_y)
# display function has been tested, and it works fine
答案 0 :(得分:0)
我刚想到了什么
我正在使用row.index(square)
,它正在找到第一个'g'方格,并使用的tile_x 第一个方块。这意味着它认为我正在寻找的正方形不在地图上显示的正确范围内,因此第一个if语句返回False并且它不会显示或打印出来。