開發手機游戲心得

時間:2023-04-26 10:38:06 心得體會 我要投稿
  • 相關推薦

開發手機游戲心得

上一次,我主要聊了一下當前手機游戲開發的平臺選擇和開發環境的安裝,也具體的談了談開發J2ME程序的簡

開發手機游戲心得

單入門方法。由于當前在手機上做游戲開發的大部分同志們用的都是J2ME,所以朋友們又催我繼續深入談一談

J2ME的開發技巧。本人所學甚淺,許多地方也都只是觸及皮毛,因此只能簡單的談談我在手機游戲的開發中碰

到的一些問題和我個人采用的解決方案。另外我把平時在論壇里收集到的部分技巧提供給大家以作參考,這里

特別感謝那些無私奉獻自己知識的人們。如果在文章中存在什么錯誤,還請各位老鳥海涵。希望我這篇文章能

起到一點拋磚引玉的作用吧。

開發技巧這個東西是頗不好談的。還記得我最早學習J2ME的時候,曾經在SUN的網站上看到過一篇文章,題目是

《如何提高J2ME程序的效率》,作者口氣強烈的要求j2me代碼"寸土寸金",仿佛令我回憶起了當年在單片機上

的編程,其中有幾個觀點到現在還記得,比如不到萬不得已不要創建新的類,限制使用接口數量,還有要縮短

變量或函數名稱等等...我剛開始照著這個那個規范編程的時候,反而在許多地方束縛了自己,搞的這也不好做

,那也不好辦。呵呵,這大概就是盡信書不如無書吧。所以,我在聊技巧的時候不會給大家設置很多條條框框

,只講一下對某個問題通常的解決方法,希望能對大家有一點幫助。再次感謝那些在網上和論壇上給我提供過

幫助的朋友們。

游戲貼圖

說起來千頭萬緒,不如就從最常用的貼圖技巧開始說起吧。

MIDP手機程序的標準圖片格式是PNG(便攜式網絡圖片格式)。這里值得注意的是,不同的手機平臺對于圖片的要

求也滿"挑食"的,同樣是PNG格式卻不一定適用于所有平臺。我就碰到過這樣的情況,利用WinXP自帶畫圖板生

成的PNG格式圖片,在WTK的標準模擬器上可以正常顯示,到了西門子模擬器上卻怎么也顯示不出來。經過一番

折騰,我在Photoshop中重新生成了新的PNG格式圖片后才順利的顯示出。網上的一些朋友也曾問我,為什么在

模擬器上運行正常的圖片在真實設備上卻無法顯示。我也只能對他說多換幾種生成圖片的工具試試看嘍。另外

,因為圖片資源會占用較大空間,所以應該盡量保證其尺寸小,數量少。用不同的編輯工具存儲PNG位圖時,其

文件的大小會有很大的不同,你可以嘗試多使用幾種工具,選擇其中存儲最小的來使用。在這里我推薦一個工

具:Image Optimizer。它可以在不影響圖象品質的前提下將圖象減肥,最高可減少50%以上,真的很神奇呦J

要把圖片加載到你的應用程序中,需要調用Image.createImage()這個函數,并且需要做相關的異常處理,所

以我一般會在MIDlet中定義一個工具函數,LoadImage()

具體代碼如下:

//加載圖片

       public Image LoadImage(String path)

       {

          try

          {

             return Image.createImage(path); //成功則返回圖片對象

          }

          catch(Exception e)

          {

e.printStackTrace(); //不成功則打印錯誤信息并返回空值

return null;

          }

}  

如果有人問我,jar中什么是最占地方的?什么是最讓你頭疼的?我當然會毫不猶豫地說是圖片,是PNG圖片了

。但是一個好的游戲又怎能少得了那些精美的圖片呢?一個經常使用的竅門是將許多的圖片文件合并到一個圖

片文件中來,這樣可以在總體上減小將圖片占用的空間。最有代表性的例子就是精靈動畫了

在文件中載入這類大圖像后,可以采用以下的方法來繪出動畫的各個幀

g.setClip(x, y, FRAME_WIDTH, FRAME_HEIGHT);

g.drawImage(fiveMenImage, x - FRAME_WIDTH * frameNumber, y, Graphics.TOP | Graphics.LEFT);

    其中 x,y 為您繪圖的起始坐標,FRAME_WIDTH和FRAME_HEIGHT為大圖像的寬度和高度,frameNumber值由0

-7的循環。這樣你就可以制造出一幅精靈正在行走的動畫了。但要注意,如果還有其他的圖片需要繪制,請重

置你的剪輯窗口。

    此外,當然是地圖的繪制了

   

我們的大地圖,通常是由許多的小塊拼出來的,并會用一個數組來保存地圖各個位置的地形和狀態,然后統一

的在paint方法中刷出整張地圖來。

實例代碼如下:

HouseVector = new Vector();  //設置一個動態數組存放截下來的圖片

Image ImageTemp = null;      //存放大圖片

Graphics g1 = null;         

try

{

    ImageTemp = Image.createImage("/res/image/house.png"); //加載整張大圖片

}

catch(Exception exception) { }

for(int i = 0; i < 3; i++)

{

      for(int j = 0; j < 4; j++)

      {

         Image image_element = Image.createImage(16, 16);//作為截圖的小圖片

      

[1] [2] [3] [4] 下一頁

相關專題:[手機]

【開發手機游戲心得】相關文章:

手機游戲作文02-20

手機游戲作文02-20

經典小班開發游戲方案范文11-09

游戲開發崗位職責03-17

游戲開發工程師崗位職責04-12

手機銷售心得11-24

手機培訓心得05-09

沉迷手機游戲倡議書范文(精選13篇)12-08

遠離手機游戲的倡議書范文(精選15篇)10-18

手機銷售的實習心得02-04

国产v亚洲v天堂无码网站,综合亚洲欧美日韩一区二区,精品一级毛片A久久久久,欧美一级待黄大片视频
三级亚洲中文字幕 | 亚洲第一香蕉狠狠 | 在线观看免费三级网站 | 亚洲日韩色另欧美 | 午夜爽爽福利影院 | 日韩精品中文字幕一区二区三区 |