在OpenGL ES for Android中,我有一个对象,我想用gl.glRotate旋转。但是我希望这个轮换在n
秒内发生,而不是立即发生。我该如何实现呢?我希望在n
秒内发生这种情况,以便用户可以看到旋转。
答案 0 :(得分:1)
您的对象在视图上呈现的速度有多快。假设一次更新需要时间t,那么旋转对象的数量将是(t / n)* r,r是你想要的n秒内的总旋转量。因此,在总共n秒内,有效旋转将为r。
答案 1 :(得分: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();
}
}
答案 2 :(得分:0)
OpenGL和OpenGL ES不提供此类功能。他们所提供的只是在不考虑时间的情况下绘制和转换现在的方法。
你需要的是一些系统,你自己的或一些框架/库/引擎来处理时间,并相对于它来说明。
在这方面,SteveL的回答是正确的,你必须自己处理。