如要转载请注明出处 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/
发表于 @ 2006年04月28日 16:54:00|评论(loading...)|编辑