gpt4 book ai didi

java - BufferedImage 闪烁问题

转载 作者:行者123 更新时间:2023-12-01 19:19:57 24 4
gpt4 key购买 nike

你好,我正在编写一个小游戏,它即将完成,唯一不起作用的是 ImageBuffer。每 10 毫秒我调用一次方法 repaint()。我的paint()方法如下:

private Graphics2D g2D;

public void paint (Graphics g) {
BufferedImage bimage = ((Graphics2D)g).getDeviceConfiguration().createCompatibleImage(700, 600, Transparency.OPAQUE);
g2D = bimage.createGraphics();
g2D.setFont(font);
for(Wall wall: walls){
wall.paint(g2D);
}
g2D.setColor(Color.orange);
paddle.paint(g2D);
g2D.drawString(score + "", 150,50);
g2D.drawString("record: "+topscore , 350,50);
g2D.setColor(Color.red);
ball.paint(g2D);
g.drawImage(bimage,0,0,this);
}

但这似乎并没有消除闪烁。我认为在开始绘制缓冲图像之前,屏幕会以某种方式被清除。谁能帮我解决这个问题?谢谢!

最佳答案

您需要覆盖更新:

public void update() {
paint();
}

update 的默认实现在调用 paint 之前用背景颜色填充整个区域,这就是导致闪烁的原因。

关于java - BufferedImage 闪烁问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4770411/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com