gpt4 book ai didi

ios - 调整使用 SKPhysicsBody 创建的 SpriteKit SKPhysicsBody 的大小(circleOfRadius :)

转载 作者:可可西里 更新时间:2023-11-01 00:53:06 29 4
gpt4 key购买 nike

我正在构建一个 SpriteKit“链式 react ”游戏,其中的圆圈在“爆炸”时会变大。我正在使用 SKPhysicsBody(circleOfRadius:) 初始值设定项来为圆圈创建物理体。

不幸的是,这些物理体似乎不会随着圆变大而调整大小,而且它们没有我可以设置的公开的 .radius 属性。有什么方法可以在 SpriteKit 中调整物理体的大小,还是我需要每帧都创建一个新的物理体? (这就是我在下面所做的,代码运行良好,但感觉在更新循环中创建新的物理体真的很低效。)

PS - 我知道对于圆圈,我可以使用三角函数轻松进行准确的碰撞检测以获得距离,但我想使用 SpriteKit 碰撞检测来实现其他一些效果。

func moveCircles(dt:CGFloat){
enumerateChildNodesWithName("circle") { node, stop in
let c = node as! CircleSprite
var halfWidth = c.size.width / 2.0
c.update(dt) // in update() exploding circles get larger.
if c.isExploding{
// FIXME: Have to make a new physics body every update - I don't like this!
c.physicsBody = SKPhysicsBody(circleOfRadius: halfWidth)
c.physicsBody?.categoryBitMask = CollisionCategories.ExplodingCircle
c.physicsBody?.contactTestBitMask = CollisionCategories.Circle
c.physicsBody?.collisionBitMask = 0
c.physicsBody?.dynamic = true // the default
}
}
}

最佳答案

您可能想阅读更多 here .无法调整 physicsBody 的大小,建议您创建一个新的 physicsBody 并将其分配给节点。

关于ios - 调整使用 SKPhysicsBody 创建的 SpriteKit SKPhysicsBody 的大小(circleOfRadius :),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30240802/

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