ios - SceneKit:相对于 body 的物理世界

标签 ios scenekit

我有一艘船,一切都以它为中心,一切都相对于它移动。这是第一人称射击游戏。现在,当我开火时,船会加速,它会追上子弹。我希望物理世界相对于船速移动,这样子弹基本上不受船速的影响。

物理引擎正在做正确的事情,但对我的游戏来说不是正确的事情。

我有其他元素在船移动时相对于船移动,它们现在正确移动,所以不想让船静止并移动它周围世界中的所有其他东西。我没有看到直接的方法来做到这一点,也许有间接的方法?也许我可以手动接 pipe 弹的定位。我想使用物理引擎的其他部分来进行碰撞等,所以不想完全手动进行,但如果这是唯一的选择,我会这样做。

还有其他人有什么建议吗?

最佳答案

听起来你的子弹正在受到空气摩擦。这是由物理体的“阻尼”属性控制的。值为 1.0 将使其静止不动。值为 0 将允许它连续移动而不会停止。根据 Apple 文档,默认值为 0.1。像这样分配您的节点以消除阻尼(空气摩擦)...

yourNode.physicsBody.damping = 0

关于ios - SceneKit:相对于 body 的物理世界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25051547/

相关文章:

ios - 使用 CGMutablePath 创建路径会创建到错误 CGPoint 的行

swift - 物理形状在接触时与对象的形状不匹配

shader - 在 Swift Playgrounds 中将 SCNTechnique 与 Metal 着色器结合使用

ios - 每当我尝试使用Git切换到另一个分支时,Xcode都会创建一个新分支?

ios - 体系结构 armv7(FMDB) 的重复符号

ios - 将 UITextField 委托(delegate)设置为所有 UITextField 并为少数文本字段设置 View 动画

macos - SCNRenderer 快照并不总是应用抗锯齿

ios - 在 sqlite 中设置 user_version

ios - UIView 中的 UITableView

swift - SCNGeometryElement 在 Swift 3 中的设置