gpt4 book ai didi

swift - didBegin 联系人未在 Swift 中被调用

转载 作者:可可西里 更新时间:2023-11-01 02:04:22 32 4
gpt4 key购买 nike

我有两个节点,我想检测它们之间的碰撞,但出于某种原因

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
}

当球四处移动时,它确实会从 Racket 上反弹,但我需要能够检测到这一点。

谢谢

最佳答案

检查这些东西:

确保将物理世界联系委托(delegate)设置为自身 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

关于swift - didBegin 联系人未在 Swift 中被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44339599/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com