ios – 如何在swift中使用JSTileMap

ios – 如何在swift中使用JSTileMap,第1张

概述你可以在 swift中使用JSTileMap吗?如果是的话,你如何使用它?如果我不能在swift中使用它,或者它太麻烦了,那么还有什么我可以用于.tmx地图.请注意,我正在使用精灵工具包 是的,你可以,我昨天刚开始使用它,还没有发现问题!首先导入JSTileMap文件和libz.dylib框架.然后使用以下导入添加桥接标头: #import "JSTileMap.h"#import "LFCGz 你可以在 swift中使用JsTileMap吗?如果是的话,你如何使用它?如果我不能在swift中使用它,或者它太麻烦了,那么还有什么我可以用于.tmx地图.请注意,我正在使用精灵工具包解决方法 是的,你可以,我昨天刚开始使用它,还没有发现问题!首先导入JsTileMap文件和libz.dylib框架.然后使用以下导入添加桥接标头:
#import "JsTileMap.h"#import "LFCGzipUtility.h"

接下来只需进入SKScene文件并创建一个tileMap变量,如下所示:

var tileMap = JsTileMap(named: "tileMap.tmx")

我发现定位有点棘手,所以生病了.

self.anchorPoint = CGPoint(x: 0,y: 0)self.position = CGPoint(x: 0,y: 0) //Change the scenes anchor point to the bottom left and position it correctlylet rect = tileMap.calculateAccumulatedFrame() //This is not necessarily needed but returns the CGRect actually used by the tileMap,not just the space it Could take up. You may want to use it latertileMap.position = CGPoint(x: 0,y: 0) //position in the bottom leftaddChild(tileMap) //Add to the scene

编辑

下面是我用来创建SKSpriteNodes楼层的代码:

func addFloor() {        for var a = 0; a < Int(tileMap.mapSize.wIDth); a++ { //Go through every point across the tile map            for var b = 0; b < Int(tileMap.mapSize.height); b++ { //Go through every point up the tile map                let layerInfo:TMXLayerInfo = tileMap.layers.firstObject as TMXLayerInfo //Get the first layer (you may want to pick another layer if you don't want to use the first one on the tile map)                let point = CGPoint(x: a,y: b) //Create a point with a and b                let gID = layerInfo.layer.tileGIDAt(layerInfo.layer.pointForCoord(point)) //The gID is the ID of the tile. They start at 1 up the the amount of tiles in your tile set.                if gID == 2 || gID == 9 || gID == 8{ //My gIDs for the floor were 2,9 and 8 so I checked for those values                    let node = layerInfo.layer.tileAtCoord(point) //I fetched a node at that point created by JsTileMap                    node.physicsBody = SKPhysicsBody(rectangleOfSize: node.frame.size) //I added a physics body                    node.physicsBody?.dynamic = false //You Now have a physics body on your floor tiles! :)                }            }        }    }
总结

以上是内存溢出为你收集整理的ios – 如何在swift中使用JSTileMap全部内容,希望文章能够帮你解决ios – 如何在swift中使用JSTileMap所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1098174.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存