人们如何使用python中的字符串列表在游戏中创建一个Level

时间:2015-03-17 01:07:16

标签: python pygame

我想知道,因为我正在使用pygame制作游戏,并希望使用此方法,因为它看起来整洁。

EXE

level = "WWWWWWWW" \
        "WSSSSSSW" \
        "WSSSSSSW" \
        "WSSSSSSW" \
        "WSSSSSSW" \
        "WWWWWWWW"

这里的s是空格,而w是块

1 个答案:

答案 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,y
level[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