如何使矩形附加到圆并在 Swift、SpriteKit 中与它一起旋转



所以我一直在尝试重新创建类似游戏"aa"的东西,其中"箭头"向一个圆圈射击并附着在圆圈上并随之旋转。我已经设法使箭头将箭头附加到圆圈上,但它不会旋转,它只是停留在附着在圆圈上的位置上。我大约一周前开始编码,但我不知道它的解决方案。这是我的开始联系功能


func didBegin(_ contact: SKPhysicsContact) {
let firstBody = contact.bodyA
let secondBody = contact.bodyB
if firstBody.categoryBitMask == PhysicsCategory.Circle && secondBody.categoryBitMask == PhysicsCategory.Arrow || firstBody.categoryBitMask == PhysicsCategory.Arrow && secondBody.categoryBitMask == PhysicsCategory.Circle {
var Joint = SKPhysicsJointSpring.joint(withBodyA: Arrow.physicsBody!, bodyB: Circle.physicsBody!, anchorA: Arrow.position, anchorB: Circle.position)
self.physicsWorld.add(Joint)
}
}

这也是我让圆圈旋转的方式Circle.run(SKAction .rotate(byAngle: 9999, duration: 5000))

我想知道除了放置很长的持续时间之外,是否有任何其他方法可以使其始终保持旋转。

我自己也想通了。

var Joint = SKPhysicsJointSpring.joint(withBodyA: Arrow.physicsBody!, bodyB: Circle.physicsBody!, anchorA: Arrow.position, anchorB: Circle.position)

更改为

var Joint = SKPhysicsJointFixed.joint(withBodyA: Circle.physicsBody!, bodyB: Arrow.physicsBody!, anchor: Circle.position)

最新更新