gpt4 book ai didi

swift - 拒绝重力效应SceneKit

转载 作者:行者123 更新时间:2023-11-30 11:43:35 37 4
gpt4 key购买 nike

这是我使用 SpriteKit 的第一个项目。

我正在使用这些节点

let physicsBody = SCNPhysicsBody(type: .dynamic, shape: nil)
physicsBody.isAffectedByGravity = true
physicsBody.mass = 1
geometryNode.physicsBody = physicsBody
let force = SCNVector3(0, 9.8, 0)
let position = SCNVector3(0, 0, 0)
geometryNode.physicsBody?.applyForce(force, at: position, asImpulse: false)
scnScene.rootNode.addChildNode(geometryNode)

我的目标是看到卡在场景中心的对象。

正如 SceneKit 文档中所述,SceneKit 使用 SI,因此质量 1 表示 1 千克。

施加到该物体质心的重力在 Y 轴上为 -9.8N ( 1kg * 9.8 m/s^2 )。对质心施加 9.8N 的力应该使合力等于 0,因此没有施加任何力,物体应该卡在中心,但在我的项目中,它掉落下来。

我哪里错了?

最佳答案

在我看来,就像您在创建节点时施加了力。

来自 applyForce 的开发人员文档:

Discussion This method accelerates the body without imparting any angular acceleration to it. The acceleration is applied for a single simulation step (one frame).

我认为您需要将 applyForce 调用移至场景中的更新方法。以便持续施加力。

关于swift - 拒绝重力效应SceneKit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49077888/

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