1. 程式人生 > >JME商業遊戲進階一 (從圖片開始)

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);

     繪製出的效果如圖

     

    遊戲中,圖片的處理很重要,今天大體介紹了幾種處理圖片的方法,以後將詳細講解遊戲的地表層,建築層,角色層等。