在 Java Rubik's Cube 应用程序的上下文中,我试图为最终用户执行的立方体动作设置动画。
为此,我只是使用旋转和许多重绘,如下所示:
GL11.glRotatef(zRotate, 0.0f, 0.0f, 1.0f);
zRotate 变量从 0 增加到 90,我每 20 毫秒执行一次重绘。
它工作得很好,但我看到屏幕上闪烁.. 我怎样才能避免这种情况?
根据这个线程,您可以Display.setVSyncEnabled(true);
在初始化期间调用。
解决方案是在 Opengl 画布创建中添加 SWT.NO_BACKGROUND 样式。
使用双缓冲。
http://en.wikipedia.org/wiki/Double_buffer#Double_buffering_in_computer_graphics
我对 LWJGL 没有任何经验,但一种常见的技术是在一个步骤中绘制位图并使用位图重绘屏幕/窗口。