我想知道,因为我正在使用pygame制作游戏,并希望使用此方法,因为它看起来整洁。
EXE
level = "WWWWWWWW" \
"WSSSSSSW" \
"WSSSSSSW" \
"WSSSSSSW" \
"WSSSSSSW" \
"WWWWWWWW"
这里的s是空格,而w是块
答案 0 :(得分:2)
如果使用该方法,则需要定义级别的维度 - LEVELWIDTH和LEVELHEIGHT,在本例中为8和6,然后您可以使用以下代码在x,y处找到块:
LEVELWIDTH = 8
LEVELHEIGHT = 6
def GetBlock(x, y):
return level[x * LEVELWIDTH + y]
记住索引x和y都从0开始并以索引长度为1的最后一项结束,因为Python的索引方法。
这是我在这种情况下使用的另一种方法:
level = ['WWWWWWWW',
'WSSSSSSW',
'WSSSSSSW',
'WSSSSSSW',
'WSSSSSSW',
'WWWWWWWW']
使用此方法,您需要做的就是找到(x,y)处的块是:
level[x][y]
但请记住,如果您希望能够编辑关卡,则需要为您编辑的每一行创建一个新字符串,因为您无法将项目分配给字符串。 例如:要使用字符串new:
将块设置为x,ylevel[y] = level[x][:y] + new + level[x][y+1:]
有关索引的详细信息,请参阅https://docs.python.org/3/tutorial/introduction.html#strings 我所展示的方法基于本书中的示例 http://inventwithpython.com/pygame/ 本书中使用水平的一个很好的例子是第9章 - Star Pusher