Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中,人们如何使用字符串列表在游戏中创建关卡_Python_Pygame - Fatal编程技术网

在python中,人们如何使用字符串列表在游戏中创建关卡

在python中,人们如何使用字符串列表在游戏中创建关卡,python,pygame,Python,Pygame,我想知道,因为我正在用pygame制作游戏,我想使用这种方法,因为它看起来整洁 EXE 此处的s为空白,w为块如果使用该方法,则需要定义标高-标高宽度和标高高度的尺寸,在本例中为8和6,然后您可以使用以下代码在x,y处找到块: LEVELWIDTH = 8 LEVELHEIGHT = 6 def GetBlock(x, y): return level[x * LEVELWIDTH + y] 请记住,由于Python的索引方法,索引x和y都从零开始,最后一项以索引长度-1结束 以下

我想知道,因为我正在用pygame制作游戏,我想使用这种方法,因为它看起来整洁

EXE


此处的s为空白,w为块

如果使用该方法,则需要定义标高-标高宽度和标高高度的尺寸,在本例中为8和6,然后您可以使用以下代码在x,y处找到块:

LEVELWIDTH = 8
LEVELHEIGHT = 6

def GetBlock(x, y): 
    return level[x * LEVELWIDTH + y]
请记住,由于Python的索引方法,索引x和y都从零开始,最后一项以索引长度-1结束

以下是我在这种情况下使用的另一种方法:

level = ['WWWWWWWW',
         'WSSSSSSW',
         'WSSSSSSW',
         'WSSSSSSW',
         'WSSSSSSW',
         'WWWWWWWW']
使用此方法,您只需执行以下操作即可找到(x,y)处的块:

但请记住,如果希望能够编辑标高,则需要为编辑的每一行创建一个新字符串,因为无法将项目指定给字符串。 例如:要使用新字符串将块设置为x,y:

level[y] = level[x][:y] + new + level[x][y+1:]
有关索引的详细信息,请参阅 我展示的方法基于本书中的示例
本书中使用的级别的一个很好的例子是在第9章-星形推进器中,通过读取字母并生成与之对应的对象。您不想使用
\n
?@jakekimds在每个字符串段后都有新行吗?这并不是真的需要,因为他确实知道级别的大小是8x6。这会更容易使用这里是2D数组而不是字符串。你可以把它弄得几乎一样整洁。@jakekimds-你能解释更多的jakekmid吗
level[x][y]
level[y] = level[x][:y] + new + level[x][y+1:]