2

在 Java Rubik's Cube 应用程序的上下文中,我试图为最终用户执行的立方体动作设置动画。

为此,我只是使用旋转和许多重绘,如下所示:

GL11.glRotatef(zRotate, 0.0f, 0.0f, 1.0f);

zRotate 变量从 0 增加到 90,我每 20 毫秒执行一次重绘。

它工作得很好,但我看到屏幕上闪烁.. 我怎样才能避免这种情况?

4

3 回答 3

1

根据这个线程,您可以Display.setVSyncEnabled(true);在初始化期间调用。

于 2010-08-22T18:04:32.050 回答
1

解决方案是在 Opengl 画布创建中添加 SWT.NO_BACKGROUND 样式。

于 2010-08-24T06:43:02.810 回答
0

使用双缓冲。

http://en.wikipedia.org/wiki/Double_buffer#Double_buffering_in_computer_graphics

我对 LWJGL 没有任何经验,但一种常见的技术是在一个步骤中绘制位图并使用位图重绘屏幕/窗口。

于 2010-08-22T18:06:13.550 回答