【发布时间】:2014-04-28 22:33:50
【问题描述】:
我有两个二维数组,每个数组都包含将显示图层的信息:
layer0 = [[info], [info]]
layer1 = [[info], [info]]
我想在另一个数组中包含这两个二维数组:
map = [[layer0], [layer1]]
但是,我的程序无法正确显示图块。 我的问题是: 是否可以在另一个二维数组中存储二维数组? 谢谢。
我有一个循环系统,用于遍历所述数组并显示与数组内容对应的图块:
for array in maplayer:
for tile in array:
if tile == 0:
screen.blit(self.tile_dict[0], (self.tileX, self.tileY))
self.tileX = self.tileX+16
if tile == 1:
screen.blit(self.tile_dict[1], (self.tileX, self.tileY))
self.tileX = self.tileX+16
self.tileX = self.cameraX
self.tileY += 16
我尝试添加另一个简单的 for 循环,以遍历实际的地图数组,但 PyGame 显示一个空白屏幕:
for maplayer in map:
for array in maplayer:
for tile in array:
if tile == 0:
screen.blit(self.tile_dict[0], (self.tileX, self.tileY))
self.tileX = self.tileX+16
if tile == 1:
screen.blit(self.tile_dict[1], (self.tileX, self.tileY))
self.tileX = self.tileX+16
self.tileX = self.cameraX
self.tileY += 16
这里是完整的方法:
def LoadMap(self, map):
self.tileX = self.cameraX
self.tileY = self.cameraY
for maplayer in map:
for array in maplayer:
for tile in array:
if tile == 0:
screen.blit(self.tile_dict[0], (self.tileX, self.tileY))
self.tileX = self.tileX+16
if tile == 1:
screen.blit(self.tile_dict[1], (self.tileX, self.tileY))
self.tileX = self.tileX+16
self.tileX = self.cameraX
self.tileY += 16
谢谢。
【问题讨论】:
-
你指的是什么瓷砖?你是如何试图展示这些东西的?正在发生什么,它与您的预期有何不同?但快速回答,是的,可以将 2D 数组存储在 2D 数组中。示例:[[ [[1,2][3,4]] ]]
-
嘿,FrobberOfBits,我将问题编辑得更具体。 :)