Python Cocos2d - AttributeError: у объекта 'Resource' нет атрибута 'set_view'

import cocos
from cocos.tiles import load
from cocos.layer import ScrollingManager
from cocos.director import director
from cocos.scene import Scene

director.init()

MapLayer = load("themap.tmx")

scroller = ScrollingManager()

scroller.add(MapLayer)

director.run(Scene(scroller))

Просто начал использовать кокосы и пытаться выяснить Тайлмапы. Получаю нелепые ошибки и буду признателен за помощь.

1 ответ

Когда вы загружаете файл tmx в cocos2d-python, вы получаете объект Resource, который включает в себя больше данных о карте, чем просто слои. И важно также то, что карта может иметь несколько слоев.

ScrollingManager требует объекта слоя, а не объекта ресурса. Чтобы получить слой, который вы хотите добавить из объекта Resource, вы можете получить к нему доступ как словарь, например:

MapLayer = load("themap.tmx")["The name of the layer"]

Вот модификация вашего примера с моей собственной тестовой картой, которая работает:

import cocos
from cocos.tiles import load
from cocos.layer import ScrollingManager
from cocos.director import director
from cocos.scene import Scene

director.init()

loaded_tmx = load("test.tmx")

MapLayer = loaded_tmx["Tile Layer 1"]

scroller = ScrollingManager()

scroller.add(MapLayer)

director.run(Scene(scroller))

Однако, как предупреждение, текущая версия обработки файлов TMX в cocos2d-python неправильно обрабатывает самую последнюю версию формата файлов TMX. Мне пришлось внести некоторые изменения, чтобы заставить его работать.

Другие вопросы по тегам