相关疑难解决方法(0)

如何在模拟城市5中实现一个物理效果,一个建筑物在移动时摆动?

很难用纯文本来描述,所以我记录了一个GIF来演示.

https://public.lightpic.info/image/2B1F_582465841.gif

我目前正在开展一个需要这种效果的项目.到目前为止,我已经在使用SpriteKit的iOS上完成了类似的效果,但遗憾的是结果并不令人满意.

这是我的工作:在我的项目中有一个具有不规则形状的物体,在物体的重心下方的某处施加恒定的力并且其方向是向下的.我已经规定对象的坐标不能被力改变,因此对象不会被力向下拉.当物体倾斜时,其惯性和力产生角动量,使物体直立.细节:

强制演示

当物体被操纵时,作用点高于重心.由于物体的惯性和力的组合,角动量使物体倾斜.

然而,事实证明我是对的,因为我从SpriteKit的物理引擎得到的结果是,该对象被证明是一个简单的钟摆.但直觉告诉我,我并没有错,事实上我并没有将物体的重力中心固定在背景上,而我真正做的是每次模拟物理时都将物体放回原来的位置.但结果真的很难打了我的脸:(.因此,钟摆摆动和摆动,最后的物理效果很糟糕.

然后我制定了一个临时解决方案:每次模拟物理时,将角速度乘以0.95.这种解决方案显然不是理想的解决方案,因为当旋转角度倾向于水平时,角速度不够高并且变得缓慢直立.然而有一个进步:至少该物体能够最后停止摆动.

我的进一步解决方案是施加在物体上的力随着倾斜水平而变化.当物体倾向于水平时,力趋于变大,而当物体趋于垂直时,力趋于变小.一个简单的函数可以很好地描述它:F = 1000N×| sin [旋转度] |.这有很大帮助,但不幸的是结果效果似乎根本不是物理效应.

结论:经过多天的研究,我未能实现GIF中显示的效果,我感到非常惭愧.我真的希望有能力的人能帮助我.感谢您阅读我的详细说明,非常感谢您的耐心等待.

加成:

屏幕截图显示了我实现此效果的方法.

我的实施

增加2:

我上传了我的实现,这是一个Swift Playground文件.下载地址:http://www.mediafire.com/file/qrct5sty2cyvwsy/Swing.playground.zip

PS.由于我的母语不是英语,请原谅我糟糕的语法.

game-physics ios sprite-kit skphysicsbody swift

7
推荐指数
1
解决办法
239
查看次数

标签 统计

game-physics ×1

ios ×1

skphysicsbody ×1

sprite-kit ×1

swift ×1