三重缓冲和 Canvas 不应该是被动渲染的最佳解决方案吗?我刚刚编写了这个显示圆圈的java代码。如果我将 bufferstrategy 设置为 3,它会闪烁很多。如果我把它调低到 2 或 1 就可以了。也许我做错了什么?
public void run(){
while (running){
update();
draw();
}
}
public void update(){
}
public void draw(){
BufferStrategy bs = getBufferStrategy();
if (bs==null){
createBufferStrategy(3);
return;
}
Graphics g = bs.getDrawGraphics();
g.setColor(Color.BLACK);
g.fillOval(30, 30, 20, 20);
g.dispose();
bs.show();
}
这是我放置 Canvas 的 JFrame 类
public class Game {
public static void main (String [] args){
Pan game = new Pan();
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(true);
frame.add(game);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
game.start();
}
}