このコードは、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!