Я пытаюсь создать собственный движок игры на Android с OpenGL ES 2.0.Android OpenGL ES 2.0: перевод, столкновение и управление частотой кадров
До сих пор у меня есть шар, движущийся вдоль оси x с уравнением x (t) = v * (t-t0) + x0. Скажем, радиус сферы равен r. Я использую fonction SystemClock.uptimeMillis()
, чтобы вычислить время t
.
Есть две стены, при x = 1 и x = -1. Когда сфера касается одной из этих двух стен (т. Е. Когда расстояние между сферой и одной стеной меньше r), то она отскакивает назад.
Мои вычисления выполнены в методе onDrawFrame()
моего средства визуализации.
Следовательно, вычисления выполняются только при визуализации кадра. Таким образом, частота «проверки столкновения» зависит от частоты кадров приложения. Увы, иногда следующий фрейм занимает слишком много времени, чтобы быть рендерированным, и перевод берет сферу за стеной, как какая-то квантовая частица :).
Возможно ли иметь некоторый контроль над частотой кадров моего приложения? Знаете ли вы способ избежать таких разрывов в траектории моей сферы?
Большое спасибо за ваше участие!
Это именно то, что я делаю. Но проблема в том, что стены вращаются, а иногда старое положение у стены из-за вращения. – WillGFR