在 Android 的 OpenGL ES 中,我有一个我想用 gl.glRotate 旋转的对象。但我希望这种轮换在n
几秒钟内发生,而不是立即发生。我该如何实施?我希望这在几秒钟内发生,n
以便用户可以看到旋转。
问问题
817 次
3 回答
1
您的对象在视图上渲染的速度有多快。假设一次更新需要时间 t,那么您应该旋转对象的量将是 (t/n)*r,r 是您想要在 n 秒内旋转的总量。所以在总共 n 秒内,有效的旋转将是 r。
于 2012-07-01T18:54:44.803 回答
0
使用 System.currentTimeMillis(); 让时间过去。
int seconds=5;//rotate in 5 seconds
long rotatestarted;
void StartRotate()
{
rotatestarted=System.currentTimeMillis();
}
void Render()
{
if(rotatestarted+seconds*1000<System.currentTimeMillis()){
DoRotate();
}
}
于 2012-07-01T19:36:25.807 回答
0
OpenGL 和 OpenGL ES 不提供此类功能。他们提供的只是现在绘制和转换事物的方法,而不考虑时间。
你需要的是一些系统,你自己的或一些框架/库/引擎来处理时间,以及与它相关的状态。
在这方面 SteveL 的回答是正确的,你必须自己处理。
于 2012-07-01T21:17:13.427 回答