j2me手机游戏结构分析和实际小例子系列一 游戏背景和游戏精灵
生活随笔
收集整理的這篇文章主要介紹了
j2me手机游戏结构分析和实际小例子系列一 游戏背景和游戏精灵
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
j2me手機游戲結構分析和實際小例子 一 ?????? 這段時間一直在忙java的事情,一直在學習用j2me做手機游戲。雖然說我是.net開發人員,但是java語言在很多地方上確實有用于c#的地方(我說的這個地方不是指使用語言的人多少),而是說java有很多架構,體系設計,軟件架構方面的實例都遠遠多于c#,對于一個喜歡軟件工程的人來說(呵呵當然是在說我自己),即使是做c#開發的,java語言也要知道,因為很多軟件工程方面的問題還都是java語言的。哈哈,我能夠將更多的java使用理念和設計思想用到c#中去,也是對我.net開發有很大很大的幫助。這些幫助絕不是單單寫幾年代碼就能磨練出來了哦。 ?????? 在此之前我先說幾句話鋪墊一下。我之前開發的程序都是C/S(Client/Server)和B/S(Browser/Server)這兩種架構的程序,也就是大家熟知的客戶機和服務器結構。這兩種模式的開發在軟件設計上也這很多的區別,甚至架構上也有一定區別,誰讓狀態式設計和內容式設計是有區別呢?我一直都是針對這兩種模式設計架構和設計軟件架構,從來沒有涉及到內嵌式語言的軟件設計,這次j2me手機游戲的開發讓我在軟件設計上有了新的認識。世界真大呀! ?????? 好了上面說了那么多廢話,現在進入這次的主題。我們先來看一個圖: <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> ?????? 上面這個圖是我看了一個網頁之后總結出的,首先我們先將一個游戲分解成幾個部分,這個分解是一種縱向的組件分解說明,不是軟件結構。 ?????? MIDlet是整個游戲的入口,一個游戲包括6個縱向組件:控制、角色、聲音、場景、道具和時間監聽機制列個部分。現在我想到的是這六個,只所以用縱向組件來分解是為了方便擴展新組件。 ?????? 還有一個手機游戲的軟件體系結構圖: ?????? ?????? 這個圖是來源于一個博客,在這里面我們能夠清楚的看到一個手機游戲軟件的完整結構。分成相關業務和通用核心兩個部分,在相關業務里面包涵與本次開發相關的內容,比如圖片資源、道具、擴展部分等等。核心部分是所有游戲通用的apis比如虛擬機、異常處理、io包、lang包、主線程管理等等。 ?????? 看過了上面兩個圖和其相關說明,我來說明一下我的設計結構,首先說明一下,我是一步一步進行,我現在的程序目的是實現一個背景填充,在將一個角色,放在背景圖片中去。如圖: ?????? 現在這個只是用到了游戲場景和游戲角色兩個組件。我的程序結構設計如上圖。要想實現一個目標程序,首先DIMlet是必不可少的,此外我還需要一個gamecanvas對象,和游戲場景、游戲角色,共四個部分。在這次的實現中,僅僅需要這四個對象。gtMIDlet是MIDlet的子類,是整個系統的入口,放在program中,調用MyCanvas對象(是GameCanvas的子類),又來運行游戲,myCanvas是游戲的核心對象,放在CoreClasses包中。MyLayer是填充背景對象 (是LayerManager的子類),專門用來繪制背景圖片。PlayerSprite是Sprite的子類,最后一個是游戲角色的對象,也放在CoreClasses包中,他調用ImagesManage中的對象獲得圖片。好,現在我們這次說的四個主要對象都已經依依顯示出來了,現在我們來看一下基本類圖系,如圖: 當然,為了省事情還可以提煉一些通用的對象,比如說填充地圖可以靈活一點,這當然是根據大家的需要自己可以封裝。 ?????? 整個設計就到此是一個段落了。這是第一個實踐過程,,很簡單一個背景和一個角色而已,并且不能動,對于這個系列我還會繼續向下進行。在文章的附件中我會把圖加上,看不清楚的朋友可以下載看看。
轉載于:https://blog.51cto.com/realzjy/178050
總結
以上是生活随笔為你收集整理的j2me手机游戏结构分析和实际小例子系列一 游戏背景和游戏精灵的全部內容,希望文章能夠幫你解決所遇到的問題。