在Sprite Kit中使用TileMap的对象位置

时间:2015-07-27 07:18:50

标签: swift sprite-kit jstilemap

在TileMap中我们可以使用图层,其中一个是Object图层。 但是怎么用它们来给我他的位置呢?

使用此代码我可以看到对象的位置,但事实并非如此 有一个名为position'

的成员
let group:TMXObjectGroup = tileMap.groupNamed("Blocks")
        let theObjects: [AnyObject] = group.objectsNamed("Wall")
        for i in theObjects {
            print(i)
        }

The Result of the Code

所以我无法将位置保存在Var或Let中,我们怎么做?

1 个答案:

答案 0 :(得分:0)

我不完全确定你问的是什么,但如果我理解正确的话,这会给你你想要的东西:

extension JSTileMap {
  func getObjectPositionOnLayer(layerName: String, objectName: String) -> CGPoint {
    var position = CGPoint()

    if let objectLayer = groupNamed(layerName) {
      if let object: NSDictionary = objectLayer.objectNamed(objectName) {
        position = CGPoint(
          x: object.valueForKey("x") as! CGFloat,
          y: object.valueForKey("y") as! CGFloat
        )
      }
    }

    return position
  }
}

使用示例:

// Get player start position from the object named "Start", in 
// the object layer "Meta Layer".
let startPoint = map.getObjectPositionOnLayer("Meta Layer", objectName: "Start")
player.position = startPoint