Attualmente sto lavorando a un editor di mappe per un gioco in pygame, utilizzando mappe di tile. Il livello è costruita su blocchi nella seguente struttura (anche se molto più grande):Converti tuple in elenco e ritorno
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))
dove "1" è un blocco che è un muro e "0" è un blocco che è vuoto.
Il seguente codice è fondamentalmente la gestione del cambio di tipo di blocco uno:
clicked = pygame.mouse.get_pressed()
if clicked[0] == 1:
currLevel[((mousey+cameraY)/60)][((mousex+cameraX)/60)] = 1
Ma poiché il livello è memorizzato in una tupla, sono in grado di modificare i valori dei vari blocchi. Come faccio a cambiare i diversi valori nel livello in modo semplice?
Modifica: risolto! Grazie ragazzi
non utilizzare un tuple, basta usare un elenco dall'inizio. Potrebbe davvero rallentare il tuo codice se il tuo livello è enorme, se devi continuare a convertirli – jamylak
come fare con le liste invece delle tuple fin dall'inizio? –
@ user2133308 btw solo una nota di compatibilità, dovresti usare la divisione integer '//' invece di solo '/' perché in Python 3, '/' eseguirà la divisione in virgola mobile e rovinerà il tuo codice. – jamylak