Game's Life

Mobile Game Developer

原创 初识Doja(对图片的操作)收藏

新一篇: 初识Doja(编辑ADF文件) | 旧一篇: 初识Doja(制作第一个程序HelloDoja)

如要转载请注明出处    http://blog.csdn.net/dl_hum/

制作游戏最根本的事情就是对游戏图片的各种操作,在这里我向大家介绍一下有关
Doja里对图片的操作。

 

Doja中所支持的图片格式为gifjpg两种,当不论是对图像的执行速度,还是咱用内存的大小,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...)|编辑

评论:没有评论。

发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © Game's Life