本文举例说明游戏开发中我们如何把一些列零碎的小图片合成一幅比较大的图片,可以通过setClip画这张大图的一小部分,也可以预先通过setClip把大图分割成小图然后直接调用小图。

    游戏开发中我们往往需要把一些列零碎的小图片合成一幅比较大的图片,需要用到这些图片时可以通过setClip画这张大图的一小部分,也可以预先通过setClip把大图分割成小图然后直接调用小图。

    下面通过例子来说明如何分割图片。

    建立一个Image数组:Image[ ] imgNumbers = new Image[10];

    private void initImgNumbers() throws Exception {

      Image imgTotal = Image.createImage(…);
      Graphics g;
      for ( int i = 0; i < 10; i++) {
        imgNumbers[i] = Image.createImage(10, 15);//这里初始化图片数组,大小为10X15
        g = imgNumbers[i].getGraphics();
        g.drawImage(imgTotal, -i * 10, 0, 20);
        }
    }

    需要说明的一点是,MIDP 1.0里面采用上述做法会丢失图片中的透明像素,补救措施有二:
     
    一、直接setClip画大图;
     
    二、如果是诺基亚的机子,采用如下代码:
     

    imgNumbers[i] = DirectUtils.createImage(10, 15, 0);

     
    即可
     
    (责任编辑 火凤凰 sunsj@51cto.com  QQ:34067741  TEL:(010)68476636-8007)

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 移动互联网生活门户 灵客风LinkPhone