0
我建立一个游戏Spritekit斯威夫特,我有三个节点和地面之间的DidBeginContact检测功能,我需要添加一个变量,让我使用的接触位置的看法,但我不不知道该怎么做。 我希望我可以用一个变量类似于一个在的touchesBegan 功能发现如何找到碰撞位置
设位置= touch.locationInNode(个体经营)
的任何援助,将不胜感激。
我建立一个游戏Spritekit斯威夫特,我有三个节点和地面之间的DidBeginContact检测功能,我需要添加一个变量,让我使用的接触位置的看法,但我不不知道该怎么做。 我希望我可以用一个变量类似于一个在的touchesBegan 功能发现如何找到碰撞位置
设位置= touch.locationInNode(个体经营)
的任何援助,将不胜感激。
你想要得到的发生在精灵本身在接触的精确位置?我认为那不可能。
如果你只是想大致位置在接触偏偏刚刚获得的接触点的位置属性。
我认为您的联系功能看起来是这样的(应该)。
func didBeginContact(contact: SKPhysicsContact) {
let firstBody: SKPhysicsBody
let secondBody: SKPhysicsBody
if contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask {
firstBody = contact.bodyA
secondBody = contact.bodyB
} else {
firstBody = contact.bodyB
secondBody = contact.bodyA
}
if (firstBody.categoryBitMask == GROUND CATEGORY) && (secondBody.categoryBitMask == OBJECT CATEGORY) {
}
....
}
只需在相应的if语句中将所需的精灵的位置分配给您所需的属性即可。
if (firstBody.categoryBitMask == GROUND CATEGORY) && (secondBody.categoryBitMask == OBJECT CATEGORY) {
if let objectNode = secondBody.node { // safely unwrap
yourLocationProperty = objectNode.position
}
}
希望这有助于
这工作!再次感谢。 :) – Xcoder555
不客气。快乐的编码。 – crashoverride777