1
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。得到荒谬的错误,并希望得到一些帮助。

4

1 回答 1

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 文件格式。我必须进行一些修改才能使其正常工作。

于 2018-03-01T17:56:56.370 回答