JME商业游戏进阶一 (从图片开始)

         先开个小头,从学校到公司,的确感到环境变化很大,这种生活方式突然让自己感到学生时代挺美好的。

         感慨完了,下面就将自己所感受到不同的地方以文章形式表述出来,师弟师妹们看了,说不定会有所体会呢,这样,不用真正上班,你就早已远远超越别人了,多好大笑

       商业游戏进阶第一步 — 从图片开始

       图片是一个游戏中的大块,它的好坏直接决定了这游戏的是否受欢迎,21世纪的人了,谁还愿意在张黑屏上指挥自己的英雄去冲锋陷阵哦,呃,如果你说你喜欢,我只能深深地尊称为你潇洒大哥。所以呢,我们需要用好的方式来绘制出我们的图片。下面我就一一列举绘制图片的几种方法,然后分别指出它们的利弊。

       第一种:整张图直接绘制法

       这种方法恐怕也是老的可怜的一种了,一张图傻忽忽的在屏幕上滚动,重用性几乎为0,- -几个月前在俺们学校举行的培训,我们就是用这种传说级的方法绘制了喜洋洋大战灰太狼的地图,如上所说,单屏与滚动(滚动类用这种不好)可以用的,效果一般,但有一点,那便是操作简单,只需计算一个地图坐标,所以循环绘制就行了。下面的游戏主画面采用了整张图绘制。

 

       

 

      第二种:切块方式绘制

      切块方式是将一整张图分割出多张自己需要的图块,然后分别先用setClip指定显示区域位置与大小,再用drawImage绘制到指定屏幕位置。

      如原图是

 

     

 

      分割出来的效果如下图

 

              

 

      第三种:缓冲绘制法

     此种方法多用于地图绘制中,原理如下
     1.首先载入美工用地图编辑器(如HOTEDIT,MAPWIN等)编辑好的地图数组及初始图片文件

     2.建立图片(如图片名为img,单元格宽为width,单元格高为height,地图宽m_Width(几行),地图高m_Height(几列))数组(建立为Image []imgSrc = new Image[img.getWidth()/width * img.getHeight()/height]); )

     3.循环遍历图片数组

     4.循环一次所要做的事情有如下:

                 建立缓冲区imgSrc[i]=Image.createImage(width,height);

                 取得缓冲画笔Grapihcs g=imgSrc[i].getGraphics();

                 计算偏移量int cx=i%(img.getWidth()/width)*width;  int cy=i/(img.getHeight()/height)*height;

                绘制图片到Image对象中 g.drawImage(img,-cx,-cy,0);

    5.遍历地图数组(多重循环)

              g.drawImage(img[i][j]--,j*width,i*height,0);

     绘制出的效果如图

     

    游戏中,图片的处理很重要,今天大体介绍了几种处理图片的方法,以后将详细讲解游戏的地表层,建筑层,角色层等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值