0

このコードは、stackoverflow で見つけた多くの例に基づいてまとめました。プログラムを実行すると、画面全体が激しくちらつきます。私が見落としている単純なものがあると確信していますが、これまでのところ解決策を突き止めることができませんでした. 主にオンライン フォーラムを読んで助けを借りて、これを数時間デバッグしてきました。

public class Screen extends JComponent {

    @Override
    public Dimension getPreferredSize(){
        Dimension tempDimension = Toolkit.getDefaultToolkit().getScreenSize();
        return tempDimension;
    }

    @Override
    protected void paintComponent(Graphics g) {

        super.paintComponent(g);
        Graphics2D g2D = (Graphics2D)bufferStrategy.getDrawGraphics();
        g2D.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER)); //sprites overlap instead of overwrite
        if(game==null){
            drawSplash(g2D);
        }else{
            drawBoard(g2D);
        }
        g2D.dispose();
        bufferStrategy.show();
    }
}

追加のコードが必要な場合は、提供できます。助けてくれてありがとう、stackoverflow!

4

1 に答える 1