【问题标题】:Cocos2d Python - AttributeError: 'Resource' object has no attribute 'set_view'Cocos2d Python - AttributeError:“资源”对象没有属性“set_view”
【发布时间】:2017-09-27 04:47:21
【问题描述】:
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))
刚开始使用 cocos 并试图弄清楚 Tilemaps。遇到荒谬的错误,希望能得到一些帮助。
【问题讨论】:
标签:
python
cocos2d-python
【解决方案1】:
当你在 cocos2d-python 中加载一个 tmx 文件时,你会得到一个 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))
作为一个预警,cocos2d-python 中当前版本的 TMX 文件处理不能正确处理最新版本的 TMX 文件格式。我必须进行一些修改才能使其正常工作。