最近忽然萌生了想在手機上制作一款第一人稱的FPS游戲,首先碰到的一個標題就是圖片的縮放,經過網上的搜索和自己的實踐,產生了如下的方法。
public static final Image scale (Image srcImage, int newW, int newH) {
int srcW = srcImage.getWidth();
int srcH = srcImage.getHeight();
//先做程度方向上的伸縮變換
Image tmp = Image.createImage(newW, srcH);
Graphics g = tmp.getGraphics();
for (int x = 0; x < newW; x++) {
g.setClip(x, 0, 1, srcH);
//按比例放縮
g.drawImage(srcImage,x-x*srcW/newW,0,Graphics.LEFT | Graphics.TOP);
}
//再做垂直方向上的伸縮變換
Image dst = Image.createImage(newW, newH);
g = dst.getGraphics();
for (int y = 0; y < newH; y++) {
g.setClip(0, y, newW, 1);
//按比例放縮
g.drawImage(tmp,0,y-y*srcH/newH,Graphics.LEFT | Graphics.TOP);
}
return dst;
}
我分辨在諾基亞3250和6230i上面測試了這段代碼,應用的圖片尺寸為60*60,先後將其縮放為30*30和120*120,縮小到30*30的時候,速度很快,放大到120*120的時候感到稍有停頓,不過總的來說,還是完整可以在游戲中應用了,希看能夠早日完成我的目標:)