有没有人成功使用JSTilemap加载可见的图块?我问的原因是因为我的地图大小太大而无法一次加载我想要单独加载段或者只是动态加载屏幕上当前可见的那些图块.
我不想使用KoboldKit.
编辑:激动人心的更新.Steffan和Marcus正在TilemapKit.com上制作一个外观漂亮的工具包.迫不及待地向他们扔钱.
你可以JSTileMap在swift中使用,如果是,你如何使用它.如果我不能在swift中使用它,或者它太麻烦了,那么还有什么我可以用于.tmx地图.请注意,我正在使用精灵工具包
我的项目在iPhone 6上的运行速度为55-60FPS,但是任何较旧的都是完全无法播放的,因为有些东西在吃CPU.
我认为这个问题与我地图上的图块和图层数量有关(64x256有4层),而Instruments显示"SKCRenderer:preprocessSpriteImp(..."运行时间为5198ms(23.2%).
JSTileMap是否一次加载每个图块的图像(可见或不可见)?来自RW的这篇文章表明情况就是这样,它可以解决大的性能提升:http://www.raywenderlich.com/forums/viewtopic.php?f = 29&t = 9479
在另一个性能注释中 - Sprite Kit检查它的所有节点并决定显示每个帧所需的节点.如果你有一个大的瓷砖地图,这可能是一个很大的性能影响.JSTileMap在加载tile map时加载所有节点(每个tile的SKSpriteNode).所以,我也看到Sprite Kit版本中的性能问题与我的地图(500 x 40个瓷砖).我在我的JSTileMap版本中添加了一个检查,该版本包含在套件中,用于标记每个图块的隐藏属性,然后智能地取消隐藏和隐藏进入/退出屏幕空间的图块.这显着提高了这些较大地图的性能.
不幸的是,该帖子没有详细说明为解决这个问题所采取的措施.
我的第一个想法是(我是初学者,请温柔)通过循环每个点并检查特定图层上的图块来创建节点数组.从那里开始,我会根据与玩家的距离来添加/删除它们.
这不起作用,因为向数组添加节点的过程只会导致应用程序永久挂在较大的地图上.
有人能伸出援助之手吗?我喜欢使用更大/更复杂的平铺图,但这个性能问题正在摧毁我的大脑.
谢谢阅读!
更新:非常感谢SKAToolKit: https ://github.com/SpriteKitAlliance/SKAToolKit
他们的剔除功能解决了我的问题,我现在在低于35%的CPU下运行更大的地图.