У меня есть класс плиток:
class Tile:
tile_pref = {
"sprites": []
}
pos = Vector2(vector_zero)
def img(self, x, y, tilemap, t):
return self.tile_pref["sprites"][0]
def __init__(self, img, pos):
self.tile_pref["sprites"].append(img)
self.pos = pos
И еще одна обрезанная часть: src
- допустимый путь строки, spacing
, tile_size
, offset
- векторы с .x
и .y
. self.__tiles__
- это массив.
img = pyglet.image.load(src)
for i in range((img.height - offset.x) // (spacing.x + tile_size.x) + 1):
for j in range((img.width - offset.y) // (spacing.y + tile_size.y) + 1):
a = offset.x + (tile_size.x + spacing.x) * j
b = offset.y + (tile_size.y + spacing.y) * i
self.__tiles__.append(Tile(img.get_region(a, b, tile_size.x, tile_size.y), Vector2(i, j)))
Основная проблема в том, что длина tile_pref["sprites"]
не 1
, но равна всему количеству плиток. Как я могу это исправить?
Думаю, когда я звоню
img.get_region
, мне возвращается ссылка на него. Таким образом, он вызывает
append
каждый раз, когда меняется ссылка.