Aktualnie pracuję nad edytorem map dla gry w pygame, używając map kafelków. Poziom jest zbudowany z bloków w następującej strukturze (choć znacznie większy):Konwersja krotki do listy iz powrotem
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))
gdzie „1” oznacza blok to ściana i „0” to blok to puste powietrze.
Poniższy kod jest w zasadzie jeden obsługi zmianę typu bloku:
clicked = pygame.mouse.get_pressed()
if clicked[0] == 1:
currLevel[((mousey+cameraY)/60)][((mousex+cameraX)/60)] = 1
Ale ponieważ poziom jest przechowywany w krotce, jestem w stanie zmienić wartości poszczególnych bloków. W jaki sposób mogę łatwo zmienić różne wartości na tym poziomie?
Edytuj: Rozwiązane! Dziękujemy
nie używają krotki, wystarczy użyć listę od początku. To może naprawdę spowolnić twój kod, jeśli twój poziom jest ogromny, jeśli będziesz musiał je dalej konwertować – jamylak
jak od razu zacząć od list zamiast krotek? –
@ user2133308 btw tylko notatkę kompatybilności, powinieneś używać liczb całkowitych '//' zamiast tylko '/', ponieważ w Pythonie 3 '/' wykona podział zmiennoprzecinkowy i zepsuje twój kod. – jamylak