问题描述
我确定这个问题已经被问过很多次了,所以我很抱歉。我将查看以前的答案,直到有人对此做出答复。或者,如果我可以被重定向到解决方案。
当我使用下面的方法时,我会根据 BufferedImage 的数据获得一个像素信息数组。但是,在创建像素数据后,无法更改宽度和高度......一旦您运行游戏,就是这样。基本上,一个 16x32 的精灵不能被放大到 32x64 ......或者一些奇怪的东西,比如 456x12。这样做的更好方法是什么?
这是我的代码:
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;
public class GameImage {
private int w,h;
private int[]p;
public GameImage(String path) {
BufferedImage image = null;
try {
image = ImageIO.read(GameImage.class.getResourceAsstream(path));
}catch(IOException e) {
e.printstacktrace();
}
w = image.getWidth();
h = image.getHeight();
p = image.getRGB(0,w,h,null,w);
image.flush();
}
public int getW() {
return w;
}
public void setW(int w) {
this.w = w;
}
public int getH() {
return h;
}
public void setH(int h) {
this.h = h;
}
public int[] getP() {
return p;
}
public void setP(int[] p) {
this.p = p;
}
}
下图显示了我在“常规尺寸”显示器上的游戏屏幕。屏幕上的精灵是 16x32...它不能被放大。蓝色背景是一个更大的 BufferedImage,整个游戏都在它上面渲染。我使用 RenderEngine 对象,并调用诸如 r.drawImage() 之类的方法来绘制...图像,哈哈。我相信你能猜到……这些图像被绘制到由更多像素数据组成的 BufferedImage 中。
(不确定这是否是游戏画面的最佳方法……但目前看来可行。)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)