如要转载请注明出处 http://blog.csdn.net/dl_hum/
制作游戏最根本的事情就是对游戏图片的各种操作,在这里我向大家介绍一下有关Doja里对图片的操作。
Doja中所支持的图片格式为gif和jpg两种,当不论是对图像的执行速度,还是咱用内存的大小,gif格式的图片都要比jpg格式的图片略胜一筹,而且Doja还至此gif格式的透明效果。
首先,我们来看一下Doja中的Image类(com.nttdocomo.ui.Image)。在这个类中一共定义了五个可用方法,他们分别是:
·public static Image createImage(int width, int height);
新建一个指定宽度和高度的Image类,并且用画板的背景色来填充此图像的像素。
·public static Image createImage(int width, int height, int[] data, int off);
使用指定的RGB颜色数组创建一个Image类。
·public int getWidth();public int get getHeight();
获得图像的宽度和高度。
·public void public Graphics getGraphics();
获得Image实例的图形上下文,可以通过此方法在该图像上进行绘制。
另外,应用程序不可以对Image类直接进行实例化,而是通过如下的方法来获得图像句柄(我想这样叫会更形象些):
MediaImage mi = MediaManager.getImage(myImage); try { mi.use(); } catch(ConnectionException ce){} Image img = mi.getImage(); |
获得了图像的句柄后,我们就可以对图像进行操作了,包括对图像的显示,缩放,旋转……。
下面的程序实现了对图像进行顺时针90度的旋转并在画板上进行显示的程序:
// ImageTest.java import com.nttdocomo.ui.IApplication;
public class ImageTest extends IApplication { public void start() { Display.setCurrent(new MyCanvas()); System.out.println("Start IApplication!"); } }
// MyCanvas.java import com.nttdocomo.ui.*; import com.nttdocomo.io.*;
public class MyCanvas extends Canvas { public void paint(Graphics g) { MediaImage mi = MediaManager.getImage(“ImageName.gif”); try { mi.use(); } catch(ConnectionException ce){} Image img = mi.getImage();
g.setFlipMode(Graphics.FLIP_ROTATE_RIGHT); g.drawImage(img, 0, 0); } } |
还有一点需要说明的是Doja对于绘制图像局部的方法drawImage(Image image, int dx, int dy, int sx, int sy, int width, int height)
支持的并不是很好,如果你定义的图像过大,那么同样是绘制一个
32X32pixel
的图像,它的速度要慢上许多倍,当然你定义的原图像越大,执行的时间也就越长。
如要转载请注明出处 http://blog.csdn.net/dl_hum/