我目前正在使用平铺地图为pygame中的游戏制作地图编辑器.该级别由以下结构中的块构建(尽管更大):
level1 = (
(1,1,1,1,1,1)
(1,0,0,0,0,1)
(1,0,0,0,0,1)
(1,0,0,0,0,1)
(1,0,0,0,0,1)
(1,1,1,1,1,1))
Run Code Online (Sandbox Code Playgroud)
其中"1"是一个墙,而"0"是一个空的空间.
以下代码基本上是处理块类型更改的代码:
clicked = pygame.mouse.get_pressed()
if clicked[0] == 1:
currLevel[((mousey+cameraY)/60)][((mousex+cameraX)/60)] = 1
Run Code Online (Sandbox Code Playgroud)
但由于级别存储在元组中,我无法更改不同块的值.如何以简单的方式更改关卡中的不同值?
如何将3-Dimensinal元组转换为数组
a = []
a.append((1,2,4))
a.append((2,3,4))
Run Code Online (Sandbox Code Playgroud)
在一个数组如:
b = [1,2,4,2,3,4]
Run Code Online (Sandbox Code Playgroud) query = 'select mydata from mytable'
cursor.execute(query)
myoutput = cursor.fetchall()
print myoutput
(('aa',), ('bb',), ('cc',))
Run Code Online (Sandbox Code Playgroud)
为什么它(cursor.fetchall)返回一个元组元组而不是一个元组,因为我的查询只询问一列数据?
将其转换为最佳方式是什么['aa', 'bb', 'cc']?
我可以这样做:
mylist = []
myoutput = list(myoutput)
for each in myoutput:
mylist.append(each[0])
Run Code Online (Sandbox Code Playgroud)
我相信这不是最好的方法.请赐教!