在 pygame 中制作 tilemap 时出现地图宽度和高度值问题
Problem with map width and height values when making a tilemap in pygame
所以,我正在尝试使用 pygame 在 python 中创建游戏地图制作工具。我写了一些代码,用于用边界图块初始化地图。为此,我有两个主要变量:tiles_wide 和 tiles_tall。即地图的宽和高有多少瓦片。当它们的值相同时(比如都是 25),我的代码就可以工作。但当它们不存在时,它就会崩溃。我不知道为什么,这让我很沮丧。
我的代码:
tiles_wide = 30
tiles_tall = 25
# Create world list
world_data = []
for row in range(tiles_tall):
# Create the set number of columns
num_columns = [0] * tiles_wide
world_data.append(num_columns)
# Create boundary
for tile in range(0, tiles_wide):
world_data[tiles_wide - 1][tile] = 2
world_data[0][tile] = 1
for tile in range(0, tiles_tall):
world_data[tile][0] = 1
world_data[tile][tiles_tall - 1] = 1
我得到的确切错误是:
IndexError: list index out of range
这段代码看起来很可疑,因为第一个索引是高度,第二个索引是宽度:
# Create boundary
for tile in range(0, tiles_wide):
world_data[tiles_wide - 1][tile] = 2
world_data[0][tile] = 1
for tile in range(0, tiles_tall):
world_data[tile][0] = 1
world_data[tile][tiles_tall - 1] = 1
也许应该是:
# Create boundary
for tile in range(0, tiles_wide):
world_data[tiles_tall - 1][tile] = 2
world_data[0][tile] = 1
for tile in range(0, tiles_tall):
world_data[tile][0] = 1
world_data[tile][tiles_wide - 1] = 1
?
所以,我正在尝试使用 pygame 在 python 中创建游戏地图制作工具。我写了一些代码,用于用边界图块初始化地图。为此,我有两个主要变量:tiles_wide 和 tiles_tall。即地图的宽和高有多少瓦片。当它们的值相同时(比如都是 25),我的代码就可以工作。但当它们不存在时,它就会崩溃。我不知道为什么,这让我很沮丧。
我的代码:
tiles_wide = 30
tiles_tall = 25
# Create world list
world_data = []
for row in range(tiles_tall):
# Create the set number of columns
num_columns = [0] * tiles_wide
world_data.append(num_columns)
# Create boundary
for tile in range(0, tiles_wide):
world_data[tiles_wide - 1][tile] = 2
world_data[0][tile] = 1
for tile in range(0, tiles_tall):
world_data[tile][0] = 1
world_data[tile][tiles_tall - 1] = 1
我得到的确切错误是:
IndexError: list index out of range
这段代码看起来很可疑,因为第一个索引是高度,第二个索引是宽度:
# Create boundary
for tile in range(0, tiles_wide):
world_data[tiles_wide - 1][tile] = 2
world_data[0][tile] = 1
for tile in range(0, tiles_tall):
world_data[tile][0] = 1
world_data[tile][tiles_tall - 1] = 1
也许应该是:
# Create boundary
for tile in range(0, tiles_wide):
world_data[tiles_tall - 1][tile] = 2
world_data[0][tile] = 1
for tile in range(0, tiles_tall):
world_data[tile][0] = 1
world_data[tile][tiles_wide - 1] = 1
?