我正在制作我在GMTK Game Jam中制作的一个条目的续集。这是一个平台游戏,玩家必须通过各种游戏模式的随机选择的Map,比如平台竞赛,老板战,还有我只能描述为躲避球,但有一个巨大的杀手pac man。为此,我想制作许多关卡,在python脚本中慢慢编辑列表并不能解决这个问题。所以我想学习如何读取.csv文件,并使用它们来创建一个使用许多瓷砖的关卡。但是我该怎么做呢?
到目前为止,我有一个主脚本,一个精灵脚本和一个关卡脚本。最后一个脚本里面有两个测试关卡Map,我想用一个包含各种.csv文件的文件夹替换它。在我的主脚本中,我有一个游戏类。在__init__
方法中,我设置了一个从关卡脚本中拉取的关卡列表,随机选择一个加载,并循环遍历它,以便在索引为某个值时从我的sprite脚本创建一个sprite。
#Set tile map
self.level = [levels.plat_lvl_1, levels.plat_lvl_2]
self.tile_map = random.choice(self.level)
for i in range(len(self.tile_map)):
for j in range(len(self.tile_map[i])):
if self.tile_map[i][j] == 1:
sprites.Tile(j * 32, i * 32, 1, self.tile_group)
elif self.tile_map[i][j] == 2:
sprites.Tile(j * 32, i * 32, 2, self.tile_group, self.platform_group)
elif self.tile_map[i][j] == 3:
sprites.Tile(j * 32, i * 32, 3, self.tile_group, self.platform_group)
elif self.tile_map[i][j] == 4:
sprites.Tile(j * 32, i * 32, 4, self.tile_group, self.platform_group)
elif self.tile_map[i][j] == 5:
self.player = sprites.Player(j * 32, i * 32, self.player_group, self.platform_group)
elif self.tile_map[i][j] == 6:
sprites.Tile(j * 32, i * 32 - 32, 6, self.tile_group)
我如何用.csv文件替换列表,以及如何循环它或剥离它或其他以便正确创建我的级别?如果您需要,请将Here is the link添加到整个项目中。
非常感谢!
- 多米尼克
3条答案
按热度按时间zbsbpyhn1#
我有这个函数来将csvMap转换为List[List[int]]格式。
它的用法将是:
tag5nh1u2#
你可以这样做:
hvvq6cgz3#
导入csv