有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java有没有比等待JOGL显示方法完成某些事情更好的代码?

我得告诉你,我没有为这个问题想出一个好标题,但我会解释我的情况

我正在使用OpenGL(JOGL)用Java制作一个简单的游戏。有一个按键侦听器正在等待按下左键,当您按下左键时,会发生以下情况:

case KeyEvent.VK_LEFT:
     if (inControl) {
        inControl = false;
        alpha = 0;
        moving = true;
      }

如您所见,inControl决定玩家是否能够移动。现在,通过将moving设置为false,我向display方法“发送信号”,该方法包含以下代码段:

public void display(GLAutoDrawable drawable) {
   .
   .
   .
   if (moving) {
       .
       .
       .
       // Set color's alpha to alpha
       // Draw contents
       .
       .
       .
       if (alpha < 1.0f)
          alpha += 0.01f;

       if (alpha >= 1.0f) {
           inControl = true;
           moving = false;
       }
   }
   .
   .
   .
}

这意味着一旦我点击左键,一些东西将逐渐增加不透明度,直到alpha >= 1.0f。播放器必须等待,这是通过将inControl = true放在display方法的末尾来完成的

虽然这是可行的,但我并不喜欢这种方法。显示方法不应该只显示图形而不操作数据吗


共 (0) 个答案