微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 2D 汽车游戏中模拟下压力

如何解决在 2D 汽车游戏中模拟下压力

我正在尝试为 2d 汽车游戏添加下压力,以给人一种“在轨道上”的感觉,但我正在挣扎。我使用 Box2d 作为物理引擎,我可以创建一辆汽车,它的移动有点像小行星游戏中的船,但我不确定我需要添加哪些额外的力以及在哪里(以及何时)添加它们?目前,我在加速时施加向前的力,并在转弯时将汽车旋转一个角度。

因此,如果您以下面的小行星克隆为例,我将如何模拟下压力效果?或者甚至在“轨道上”和“冰上”之间进行调整?

https://piqnt.com/planck.js/Asteroid

我曾尝试放弃 Box2d 进行简单的 cos/sin 数学运算,如下所示,这确实得到了我想要的效果,但我希望使用 Box2d 来增加一点可控性。另外我想调整下压力水平:

this.veLocity.x += Math.cos(this.angle.rad()) * this.acceleration;
this.veLocity.y += Math.sin(this.angle.rad()) * this.acceleration;
this.position.add(this.veLocity);

任何帮助或指导将不胜感激。 非常感谢,J。

解决方法

好吧,经过大约一个月的搜索!我在这个视频中找到了答案(在 32 分钟处): {{3}}

正如我所怀疑的,这是一个相当简单的修复。我需要使用点积去除横向速度。视频中的那个人解释得比我好得多,也准确地展示了我在寻找什么。

作为对我的奖励,他还演示了如何将滑道从完全抓地力(“在轨道上”)调整为非常滑(“在冰上”)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。