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);
繪製出的效果如圖
遊戲中,圖片的處理很重要,今天大體介紹了幾種處理圖片的方法,以後將詳細講解遊戲的地表層,建築層,角色層等。