Ich erhalte eine seltsame Fehlermeldung vom Python-Interpreter, wenn ich diesen Code ausführe:
def make_map():
map = [[Tile(0, 0) for col in range(MAP_WIDTH)] for row in range(MAP_HEIGHT)]
for x in range(MAP_WIDTH):
for y in range(MAP_HEIGHT):
map[x][y].tileType = round((libtcod.noise_perlin(noise2d,[y/MAP_WIDTH,x/MAP_HEIGHT])*100), 0)
Dies wird im Terminal angezeigt:
TypeError: 'builtin_function_or_method' object is unsubscriptable
Der Traceback verweist ebenfalls auf diese Funktion:
def render_all():
global color_light_wall
global color_light_ground
#go through all tiles, and set their background color
for y in range(MAP_HEIGHT):
for x in range(MAP_WIDTH):
tileType = map[x][y].tileType
if tileType>30:
libtcod.console_set_back(con, x, y, color_dark_wall, libtcod.BKGND_SET )
else:
libtcod.console_set_back(con, x, y, color_dark_ground, libtcod.BKGND_SET )
#draw all objects in the list
for object in objects:
object.draw()
#blit the contents of "con" to the root console
libtcod.console_blit(con, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 0, 0)
Ich glaube, sie sind beide mit dieser Linie verbunden: tileType = map[x][y].tileType
aber wenn jemand etwas Licht in diese Angelegenheit bringen könnte, wäre ich sehr dankbar.
Danke, Elliot Bonneville
EDIT: Ich habe vergessen, meinen Tile-Klassencode und den vollständigen Traceback einzufügen:
class Tile:
#a tile of the map and its properties
def __init__(self, tileType, blocked):
self.tileType = tileType
self.blocked = blocked
Rückverfolgung:
File "kindred.py", line 123, in <module>
render_all()
File "kindred.py", line 64, in render_all
tileType = map[x][y].tileType
TypeError: 'builtin_function_or_method' object is unsubscriptable