Java Swing或AWT重绘频率
我试图用Java制作一个简单的游戏,最后得到了以下代码Java Swing或AWT重绘频率,java,Java,我试图用Java制作一个简单的游戏,最后得到了以下代码 @Override public void paint(Graphics g) { super.paint(g); Graphics2D g2d = (Graphics2D) g; g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); ball.paint(g2
@Override
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
ball.paint(g2d);
}
...
while (true) {
repaint();
Thread.sleep(10);
}
它没有足够频繁地重画。但如果我把鼠标移到窗口的顶部,它就开始更频繁地重新绘制。按下键盘上的按钮也会加快速度
我正在使用带有i3wm
的Arch
不要相信互联网上的指南。有时候想想你自己 是导游弄错了。问题是算法是错误的。我们只需要更频繁地画画,而不是更新我们的世界 这是一个愚蠢的实现。就并发性而言,它应该是错误的
Timer timer1 = new Timer(1, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
game.repaint();
}
});
timer1.start();
Timer timer2 = new Timer(10, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
game.move();
}
});
timer2.start();
@peeskillet感谢
计时器
,但这没有帮助。还是一样的行为。@peeskillet抱歉。我问了一个愚蠢的问题。我现在就发布答案