我在扩展Canvas的类中编写了这些代码。 (如果您不想阅读,请查看这些链接上的图片,由于stackoverflow声誉或其他原因,我无法直接发布图片) http://tinypic.com/r/oaw3u8/5 http://tinypic.com/r/24g9ldz/5
final static int WIDTH = 800;
final static int HEIGHT = 600;
Dimension SIZE = new Dimension(WIDTH, HEIGHT);
Game() {
setPreferredSize(SIZE);
**
**
*
*
}
public void render() {
BufferStrategy bs = getBufferStrategy();
if (bs == null) {
createBufferStrategy(3);
return;
}
Graphics g = bs.getDrawGraphics();
g.setColor(Color.cyan);
Graphics2D g2 = (Graphics2D) g;
**g.fillRect(0, 0, getWidth(), getHeight());**
g.dispose();
bs.show();
}
问题是关于双重代码行,用于通过绘制屏幕大小的矩形来刷新屏幕。
**第一次,我的代码是
g.fillRect(0,0,WIDTH,HEIGHT);
然后我注意到黑色矩形小于屏幕。在框架的右侧有一个小的,大约1英寸的边距。(我可能会使用“边距”错误,但我希望你明白我的意思)
所以我使用getWidth(),getHeight()而不是使用确切的变量WIDTH和HEIGHT。
而且效果很好,
我不知道原因是什么?
请帮助我为什么会发生这种情况,在这种情况下变量不准确?或者是什么 。
非常感谢你