- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在构建一个 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/
我正在尝试快速创建 SKShapeNode 的子类 SKShapeNode(circleOfRadius: radius) 但没有指定的初始化。 任何人有任何变通方法或有关原因的信息吗?我不确定这是错
我正在构建一个 SpriteKit“链式 react ”游戏,其中的圆圈在“爆炸”时会变大。我正在使用 SKPhysicsBody(circleOfRadius:) 初始值设定项来为圆圈创建物理体。
以下 playground 导致时间轴错误“无法识别的选择器发送到类...” import SpriteKit let node = SKShapeNode(circleOfRadius: 10) S
我是一名优秀的程序员,十分优秀!