如何在OpenGL ES for Android中的特定时间内旋转对象?

时间:2012-07-01 18:33:43

标签: android opengl-es

在OpenGL ES for Android中,我有一个对象,我想用gl.glRotate旋转。但是我希望这个轮换在n秒内发生,而不是立即发生。我该如何实现呢?我希望在n秒内发生这种情况,以便用户可以看到旋转。

3 个答案:

答案 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的回答是正确的,你必须自己处理。