当前位置: 技术问答>java相关
***用JAVA写了一个'搬运工'游戏,画图的时候遇到了点问题,请进!
来源: 互联网 发布时间:2015-04-18
本文导语: 已经使用了双缓冲,游戏中用到的图片在第一次drawImage的时候会先变成一个小黑块,draw一次后就完全正常了,请问如何解决?另外游戏画面有时候还是有零星的闪烁,请问是什么原因? | 1、Java里的图片...
已经使用了双缓冲,游戏中用到的图片在第一次drawImage的时候会先变成一个小黑块,draw一次后就完全正常了,请问如何解决?另外游戏画面有时候还是有零星的闪烁,请问是什么原因?
|
1、Java里的图片考虑到网络传输,因此是异步载入的,可以用下面的代码等待图片载入完成:
Image img = Toolkit.getDefaultToolkit().getImage(imgPath);
if (img == null) {
throw new Exception("Load image failed.");
}
MediaTracker tracker = new MediaTracker(this); // 确保图像被完全载入
tracker.addImage(img, 0);
tracker.waitForID(0);
2、如下重载Canvas的update,防止屏幕被填充:
public void update(Graphics g) {
paint(g);
}
Image img = Toolkit.getDefaultToolkit().getImage(imgPath);
if (img == null) {
throw new Exception("Load image failed.");
}
MediaTracker tracker = new MediaTracker(this); // 确保图像被完全载入
tracker.addImage(img, 0);
tracker.waitForID(0);
2、如下重载Canvas的update,防止屏幕被填充:
public void update(Graphics g) {
paint(g);
}
|
楼上的这位老兄说的很对,关于drawimage的具体实现可参考GUI部分,出现上述问题的原因很可能就是因为图象传输,那位仁兄的代码有一定参考价值,建议在实践时验证一下他的代码,然后用自己的代码去实现(要用到错误扑获)