怎么去消除java程序的对象的闪烁,请给我具体方案

2025-05-24 05:23:48
推荐回答(1个)
回答1:

双缓冲技术。
public class StartMain extends Applet{

private Image bufferPage;

public int p_x = 50;
public int p_y = 50;

@Override
public void init() {

resize(800, 600);
MouseListener ml = new MyActionController(this);
addMouseListener(ml);
//start();
RunController runcon = new RunController(this);
new Thread(runcon).start();
PlayerController.addEnemy();
//runcon.run();
}

// @Override
// public void paint(Graphics g){
// MyDrawController.drawAll();
// }

//private int num = 0;

@Override
public void update(Graphics g) {
if(bufferPage==null){
//System.out.println("================"+num);
//num++;
bufferPage = createImage(800, 600);
Graphics gbuffer = bufferPage.getGraphics();
MyDrawController.g = gbuffer;
}

// MyDrawController.p_x = p_x;
// MyDrawController.p_y = p_y;
//paint(MyDrawController.g);
MyDrawController.drawAll();
g.drawImage(bufferPage, 0, 0, null);

}

}
主要是重写update方法