我试图使用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)
我的问题是它是如何返回超出光线范围的节点的?
答案 0 :(得分:0)
我发现了问题所在。由于玩家和敌方实体都被添加到WorldNode中,我必须使用aScene.convertPoint(location,fromNode:aScene.worldNode)来转换它们的位置并使用函数physicsWorld.bodyAlongRayStart()中的转换位置
感谢您一路上的所有帮助。