physicsWorld.bodyAlongRayStart问题

时间:2016-02-05 04:23:23

标签: sprite-kit

我试图使用physicsWorld.bodyAlongRayStart函数来实现玩家和敌方实体之间的视线。但是这个功能似乎被窃听了。 这是我的实施:

let body :SKPhysicsBody! = aScene.physicsWorld.bodyAlongRayStart(enemy.spriteComponent.node.position, end: player.spriteComponent.node.position)

if body != nil {
    print ("playerPOS \(player.spriteComponent.node.position)")
    print ("enemyPOS \(enemy.spriteComponent.node.position)")
    print (body.node?.position)
}

在控制台上我得到这样的东西:

playerPOS (220.463073730469, 368.627807617188)
enemyPOS (89.3868865966797, 457.411376953125)
(0.0, 0.0)

我的问题是它是如何返回超出光线范围的节点的?

1 个答案:

答案 0 :(得分:0)

我发现了问题所在。由于玩家和敌方实体都被添加到WorldNode中,我必须使用aScene.convertPoint(location,fromNode:aScene.worldNode)来转换它们的位置并使用函数physicsWorld.bodyAlongRayStart()中的转换位置

感谢您一路上的所有帮助。