-1

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

4

3 回答 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 回答