gpt4 book ai didi

java - 使用 BufferStrategy 在 Java 中滑动图像

转载 作者:行者123 更新时间:2023-12-01 12:40:21 26 4
gpt4 key购买 nike

我正在尝试使用 BufferStrategy 和 Graphics2D 渲染图像。代码运行良好,但图像闪烁。在我用 Graphics2D 测试它之前,我只尝试了 Graphics,并且 Frame 疯狂闪烁。代码如下:

public Main() {

x = 0;

Dimension size = new Dimension(sx, sy);
setPreferredSize(size);

frame = new JFrame();

ImageIcon player2 = new ImageIcon("res/gfx/char.png");
player = player2.getImage();

addKeyListener(new AL());

time = new Timer(5, this);
time.start();

}

public synchronized void start() {
running = true;
thread = new Thread(this, "Display");
thread.start();
}

public synchronized void stop() {
running = false;
try {
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}

public void run() {
while (running) {
render();
update();
}
}

public void render() {
BufferStrategy bs = getBufferStrategy();
if (bs == null) {
createBufferStrategy(3);
return;
}

Graphics g = bs.getDrawGraphics();

Graphics2D g2d = (Graphics2D) g;

g2d.setColor(Color.WHITE);
g2d.fillRect(0, 0, 800, 600);

g2d.drawImage(player, x, 350, null);

g.dispose();
bs.show();
}

(抱歉我的英语不好)

最佳答案

我认为您是直接在 jframe 上绘制图像。尝试使用 JPanel 等中级容器组件,并在其上绘制图像并将面板添加到框架中。直接绘制会产生闪烁效果。

关于java - 使用 BufferStrategy 在 Java 中滑动图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25164177/

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