java - 避免计时器java上的屏幕闪烁

标签 java timer

我正在开发一个java游戏。在一些正常的毫秒之后,我正在重新绘制屏幕。 但如果计时器持续时间变得非常短,那么在这种情况下屏幕就会开始闪烁。

有什么办法可以避免吗?

我们可以使用多线程来避免这种情况吗???

最佳答案

查看this tutorial其中解释了如何使用加速图形模式和双缓冲来避免屏幕闪烁。关键概念是创建一个 BufferStrategy 来管理双缓冲:

// create the buffering strategy which will allow AWT
// to manage our accelerated graphics
createBufferStrategy(2);
strategy = getBufferStrategy();

然后,在渲染过程中,您从缓冲区策略中获取 Graphics 对象,使用 Graphics 执行渲染,然后调用 strategy.show()

// Get hold of a graphics context for the accelerated 
// surface and blank it out
Graphics2D g = (Graphics2D) strategy.getDrawGraphics();
g.setColor(Color.black);
g.fillRect(0,0,800,600);

g.dispose();
strategy.show();

关于java - 避免计时器java上的屏幕闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2101305/

相关文章:

javascript - 使用计时器将父子图片移动 1px

java - java spring 为具有相同属性的多个不同 POJO 创建自定义 validator

java - 在不使用实例的情况下调用更高层级(祖 parent )的方法

java - 并发多重映射放置和删除

timer - 如果在另一个计费小时之前空闲,则关闭 EC2 实例

javascript - 在 js 中使用类名调用时计时器不工作

c - 根据现在的时间运行 func()

java - JOOQ/SQL错误: Long random string "cannot be read as a timestamp"

java - 如何计算一行中作为方法参数给出的正值的数量?

Javascript 计时器停在 1,而不是继续到 0