这是一个看似简单的游戏机制,我一直在努力弄清楚该怎么做。
为了尝试解释,我将描述一个想法(问题):
基本上我们说有一条垂直线居中于 屏幕。
我们有一个 sprite 对象,它的水平速度改变为 躲避导弹,但是这样做时物体只会漂移 离开。
如何在水平“中心线”上添加强大的重力 我的屏幕,这样我的 Sprite 每次都会“落回”它 提高它向外的速度?
我可以发布我的源代码,但在这种特殊情况下这对解决问题没有太大帮助。
我已经搜索了好几天试图解决这个问题,所以任何帮助,尤其是代码示例方面的帮助都会非常有帮助!
最佳答案
我过去编写过此类程序。重力(在物理学中)是一种加速度,所以
1) 如果 Sprite 在你每 1/n 秒从它的水平速度中减去的线的右边,并且
2) 如果 Sprite 在您每 1/n 秒添加其水平速度的线的左侧。
尝试添加/减去一个常数,或者添加/减去一个随着 Sprite 离中心线越远而增加的数字。
无论采用哪种方式,都会产生钟摆效应。如果你不想要的话,你还必须添加一个阻尼因子。一种简单的方法是,如果 sprite 远离中心线,则您添加/减去的值大于 sprite 返回中心线时的值。因此,将 Sprite 拉到停止的“重力”大于将 Sprite 带回中心线的重力加速度。
关于java - 我将如何创建 Horizontally centered “Gravity” ? - libGDX -,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21690767/