Ich weiß, dass Fragen zu Themen wie diesem bereits gepostet wurden, aber ich habe einen Fehler, den ich in keiner anderen Frage gesehen habe.TileMap Fehler pygame
Ich versuche, einen gekachelten Hintergrund aus einer 2D-Array zu machen, aber wenn ich es laufen lasse, bekomme ich diesen Fehler:
current_tile = Texturen [tilemap [x, y]]
Typeerror: Listenindex ganze Zahlen müssen, Tupel nicht
Dies ist mein Code:
import pygame, sys
from pygame.locals import *
pygame.init()
tilesize = 32
tileswidth = 11
tilesheight = 12
screenwidth = tilesize*tileswidth
screenheight = tilesize*tilesheight
screen = pygame.display.set_mode((screenwidth,screenheight))
tilemap = [
[9,3,2,2,2,4,2,2,2,3,9],
[8,11,10,10,10,10,10,10,10,11,5],
[8,1,6,9,9,9,9,9,8,1,5],
[8,1,5,9,9,9,9,9,7,1,5],
[8,1,6,9,9,9,9,9,7,1,5],
[8,1,5,9,9,9,9,9,8,1,5],
[8,1,12,4,2,3,2,4,13,1,5],
[7,11,10,10,10,11,10,10,10,11,6],
[9,9,9,9,7,1,6,9,9,9,9],
[9,9,9,9,7,1,6,9,9,9,9],
[9,9,9,9,7,1,6,9,9,9,9]
]
textures = {
1 : pygame.image.load("data/tiles/1.jpg").convert_alpha(),
2 : pygame.image.load("data/tiles/2.jpg").convert_alpha(),
3 : pygame.image.load("data/tiles/3.jpg").convert_alpha(),
4 : pygame.image.load("data/tiles/4.jpg").convert_alpha(),
5 : pygame.image.load("data/tiles/5.jpg").convert_alpha(),
6 : pygame.image.load("data/tiles/6.jpg").convert_alpha(),
7 : pygame.image.load("data/tiles/7.jpg").convert_alpha(),
8 : pygame.image.load("data/tiles/8.jpg").convert_alpha(),
9 : pygame.image.load("data/tiles/9.jpg").convert_alpha(),
10 : pygame.image.load("data/tiles/10.jpg").convert_alpha(),
11 : pygame.image.load("data/tiles/11.jpg").convert_alpha(),
12 : pygame.image.load("data/tiles/12.jpg").convert_alpha(),
13 : pygame.image.load("data/tiles/13.jpg").convert_alpha()
}
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
for x in range(tilesheight):
for y in range(tileswidth):
current_tile = textures[tilemap[x,y]]
screen.blit(current_tile, (x*tilesize, y*tilesize))
screen.fill(0,0,0)
pygame.display.update()
Jede Hilfe wäre sehr geschätzt.
Sie sollten auch beachten, dass 'screenheight' gleich 11 sein sollte oder der Code einen Indexfehler treffen wird, weil es nur 11 Elemente in' tilemap' gibt und 'screen.fill (0,0,0)' sollte in 'screen.fill ((0,0,0))' geändert werden, um auch einen Wertfehler zu vermeiden. – Flutterguy135