ダブルバッファリング

ちらつき防止のためのダブルバッファリングは自分でそういうコードをかいてもよいが、BufferStrategy を使っても実現できる。

public void loopAnim(){
    
    createBufferStrategy(2);
    
    long startTime = System.currentTimeMillis();
    long nowTime = startTime;
    
    while(nowTime - startTime < 10 * 1000){

        long elapsedTime = System.currentTimeMillis() - nowTime;
        nowTime += elapsedTime;

        anim.update(elapsedTime);
        
        BufferStrategy strategy = getBufferStrategy();
        Graphics g = strategy.getDrawGraphics();
        g.drawImage(bgImage, 0, 0, null);
        g.drawImage(anim.getImage(), 100, 100, null);
        g.dispose();
        strategy.show();
        
        try {
            Thread.sleep(20);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}