关于一些事情,我有点困惑:
示例代码,显示我的问题,这是不可编译的
// image
private BufferedImage image;
private Graphics2D graphic;
private changeImage;
. . .
//thread loop
while (running) {
. . .
render();
Graphics showGraphic = getGraphics();
showGraphic.drawImage(image, 0, 0, null);
showGraphic.dispose();
}
public void render(){
if(changeImage == 1)
graphic.drawImage(ImageLoader.TREE, 0, 0, null);
else if(changeImage == 2){
graphic.drawImage(ImageLoader.HOUSE, 0, 0, null);
. . .
graphic.fillRect(50,60,30,40);
}
}
我创建了一个全局对象Graphic2D,我在render()中绘制东西,我不在游戏循环中调用repaint(),这样做是不错的做法?
我应该在循环中使用repaint()和paintComponent()函数吗?
另外一件事,graphic.dispose()如何正常工作? ,因为试图删除这行代码,没有任何反应.
我理解如何根据java文档工作dispose(),但我没有注意到dispose()或没有任何差异.
我的程序运行得很好,但我有这个配音.