Android OpenGL ES 2.0:对帧速率的翻译,冲突和控制

时间:2013-07-06 18:22:40

标签: android opengl-es-2.0 physics-engine

我尝试使用OpenGL ES 2.0在Android上设计自己的游戏引擎。

到目前为止,我有一个沿x轴移动的球体,方程x(t)= v *(t-t0)+ x0。假设球体的半径是r。我使用函数SystemClock.uptimeMillis()来计算时间t

有两面墙,x = 1,x = -1。当球体接触到这两个墙壁中的一个时(即当球体和一个墙壁之间的距离小于r时),它就会反弹回来。

我的计算是在我的渲染器的onDrawFrame()方法中完成的。

因此,仅在渲染帧时才进行计算。因此,“冲突检查”的频率取决于应用程序的帧速率。唉,有时下一帧需要太长时间才能渲染,并且平移会将球体带到墙后,就像某种量子粒子一样:)。

是否可以对我的应用程序的帧率进行某种控制?你知道一种避免球体轨迹不连续的方法吗?

非常感谢你的举动!

1 个答案:

答案 0 :(得分:0)

通过墙壁“隧穿”是视频游戏中的一贯问题。花了很多时间来打击这种行为。检查碰撞时,您确实需要知道先前的位置和新的位置。然后你检查一下这两个位置之间是否有一堵墙,如果是这样的话,你可以重新定位你的物体,好像它已经从墙上弹开一样。

检查球体和墙壁之间距离的碰撞检查是不够的。