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. Мне пришлось внести некоторые изменения, чтобы заставить его работать.