2012-06-22 159 views
1

每隔幾秒鐘,我的遊戲正在播放的窗口將暫時消失,然後重新出現。我在Windows 7上使用最新版本的Slick(一款適用於Java的遊戲庫)。這裏是我使用的代碼:遊戲窗口閃爍

package Main; 
import org.newdawn.slick.*; 
public class Main extends BasicGame{ 

    public Main() { 
     super("Flashing window issue"); 
    } 

    @Override 
    public void init(GameContainer gc) throws SlickException { 
    } 

    @Override 
    public void update(GameContainer gc, int delta) throws SlickException { 
    } 

    @Override 
    public void render(GameContainer gc, Graphics g) throws SlickException { 
    } 

    public static void main(String[] args) throws SlickException { 
     AppGameContainer app = new AppGameContainer(new Main()); 
     app.setDisplayMode(800, 600, false); 
     app.start(); 

    } 
} 

我該如何解決這個問題?


迄今取得的進展:

更新:沒有找到解決辦法還,但玩遊戲的全屏模式消除了閃爍。也許這將導致一個解決方案...

更新2:監控任務管理器顯示,雖然遊戲閃爍,其在任務管理器中的狀態是'不響應'。

更新3:它似乎只發生在鼠標離開遊戲區域時(無論遊戲窗口是否失去焦點)。

更新4 - 當前的解決辦法:

app.setMouseGrabbed(true); // force the mouse to stay in the game area 

然後更新(...):

// exit when escape is pressed: 
if (gc.getInput().isKeyDown(Input.KEY_ESCAPE)) { 
     gc.exit(); 
    } 

回答

2

我不熟悉slick2d但它有雙緩衝的概念?如果你閃爍,這將是你想要打開的東西。

+0

我不認爲這是一個像這樣的圖形問題。整個窗口(包括標題欄和_OX按鈕)消失,然後短暫重現,這似乎與可通過雙緩衝解決的問題無關 – Cam