我有两个节点,我想检测它们之间的碰撞,但出于某种原因
func didBegin(_ contact: SKPhysicsContact) {
没有被调用。
这是一个球和一个球拍:
ball.physicsBody?.categoryBitMask = 2
ball.physicsBody?.contactTestBitMask = 2
ball.physicsBody?.isDynamic = true
main.physicsBody?.categoryBitMask = 1
main.physicsBody?.contactTestBitMask = 1
main.physicsBody?.isDynamic = false
_
func didBegin(_ contact: SKPhysicsContact) {
print("Collision") //Obviously this will be better in future, but I need to detect collision for a start
}
当球移动时,它会从球拍上反弹,但我需要能够检测到它。
由于
答案 0 :(得分:1)
检查以下内容:
确保将物理世界联系人代表设置为自己 GameScene类:SKScene,SKPhysicsContactDelegate {
override func didMove(to view: SKView) {
physicsWorld.contactDelegate = self
self.backgroundColor = .white
}
如果您指定了物理物体,例如:
box.physicsBody = SKPhysicsBody(rectangleOf: CGSize)
确保已将其完全展开(!不是?)
box.physicsBody!.affectedByGravity = true
使物理物体具有动态性:
box.physicsBody!.isDynamic = true
答案 1 :(得分:0)
这不是你在开始接触时所放的东西。您需要知道哪些物理机构正在联系。把它放进去。
packageName
显然,将PhysicsCategory.ball和.main更改为实际所谓的