我嘗試使用OpenGL ES 2.0在Android上設計自己的遊戲引擎。到目前爲止,我有一個球體沿x軸移動,方程爲x(t)= v *(t-t0)+ x0。假設球體的半徑是r。我使用函數SystemClock.uptimeMillis()
來計算時間t
。Android OpenGL ES 2.0:翻譯,碰撞和控制幀速率
有兩個牆,在x = 1和x = -1。當球體接觸到這兩個牆壁之一時(即當球體與一個牆壁之間的距離小於r時),它會反彈回來。
我的計算是在我的渲染器的onDrawFrame()
方法中完成的。
因此,計算僅在渲染幀時完成。因此,「碰撞檢查」的頻率取決於應用程序的幀率。唉,有時候下一幀需要很長的時間才能渲染,而且翻譯會將球體置於牆後面,就像某種量子粒子:)。
是否可以對我的應用程序的幀率進行某種控制?你知道一種避免我的球體軌跡中出現這種不連續性的方法嗎?
非常感謝您的召開!
這正是我所做的。但問題在於牆壁是旋轉的,有時由於旋轉,舊的位置離開牆壁。 – WillGFR