私は現在、タイル マップを使用して、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))
ここで、「1」は壁のブロック、「0」は空気のブロックです。
次のコードは基本的にブロック タイプの変更を処理するコードです。
clicked = pygame.mouse.get_pressed()
if clicked[0] == 1:
currLevel[((mousey+cameraY)/60)][((mousex+cameraX)/60)] = 1
しかし、レベルはタプルに保存されているため、さまざまなブロックの値を変更することはできません。レベル内のさまざまな値を簡単に変更するにはどうすればよいでしょうか?
ベストアンサー1
タプルをリストに変換します:
>>> t = ('my', 'name', 'is', 'mr', 'tuple')
>>> t
('my', 'name', 'is', 'mr', 'tuple')
>>> list(t)
['my', 'name', 'is', 'mr', 'tuple']
リストをタプルに変換します:
>>> l = ['my', 'name', 'is', 'mr', 'list']
>>> l
['my', 'name', 'is', 'mr', 'list']
>>> tuple(l)
('my', 'name', 'is', 'mr', 'list')