java - 我将如何创建 Horizo​​ntally centered “Gravity” ? - libGDX -

标签 java android libgdx box2d game-physics

这是一个看似简单的游戏机制,我一直在努力弄清楚该怎么做。

为了尝试解释,我将描述一个想法(问题):

  • 基本上我们说有一条垂直线居中于 屏幕。

  • 我们有一个 sprite 对象,它的水平速度改变为 躲避导弹,但是这样做时物体只会漂移 离开。

  • 如何在水平“中心线”上添加强大的重力 我的屏幕,这样我的 Sprite 每次都会“落回”它 提高它向外的速度?

我可以发布我的源代码,但在这种特殊情况下这对解决问题没有太大帮助。

我已经搜索了好几天试图解决这个问题,所以任何帮助,尤其是代码示例方面的帮助都会非常有帮助!

enter image description here

最佳答案

我过去编写过此类程序。重力(在物理学中)是一种加速度,所以

1) 如果 Sprite 在你每 1/n 秒从它的水平速度中减去的线的右边,并且

2) 如果 Sprite 在您每 1/n 秒添加其水平速度的线的左侧。

尝试添加/减去一个常数,或者添加/减去一个随着 Sprite 离中心线越远而增加的数字。

无论采用哪种方式,都会产生钟摆效应。如果你不想要的话,你还必须添加一个阻尼因子。一种简单的方法是,如果 sprite 远离中心线,则您添加/减去的值大于 sprite 返回中心线时的值。因此,将 Sprite 拉到停止的“重力”大于将 Sprite 带回中心线的重力加速度。

关于java - 我将如何创建 Horizo​​ntally centered “Gravity” ? - libGDX -,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21690767/

相关文章:

java - libgdx 中的着色器没有效果 [桌面]

java - 将特定 bean 作为参数注入(inject)具有多个参数的函数中

java - 如何在 PHP 中并行发出多个 HTTP 请求?

android - ARM 汇编回溯 PC 偏移量

java - renameTo() 不适用于重命名图像并返回 false

java - Libgdx - 对 Actor 的操作

java - com.mongodb.MongoSocketOpenException : Exception opening socket 异常

java - 管理身份验证 token 的最佳实践

android - 定期运行任务(每天一次/每周一次)

java - 表格未显示图像