我正在尝试制作2D游戏,但我无法弄清楚为什么来自先前帧的图形仍然存在。效果是当在x上以1像素/帧移动矩形时,我在屏幕上绘制了一个长条。
在类体中,我声明了下面的对象:
getErrorDialog()
这就是我正在初始化的方式:
private int x, y;
private BufferedImage image;
private Graphics2D g;
我有绘制图形的方法:
x = 10, y = 25;
image = new BufferedImage(300, 300, BufferedImage.TYPE_INT_BGR);
g = (Graphics2D) image.getGraphics();
r = new Rectangle(x, y, 10, 10);
我也有一个方法,我移动矩形:
Graphics g2 = this.getGraphics();
g2.drawImage(image, 0, 0, getWidth(), getHeight(), null);
g.draw(r);
g2.dispose();
该类扩展了Canvas并为游戏循环实现了Runnable,并使用了JFrame对象。
这是10x10矩形运动的结果: capture