聶 茹,李海恩
(華南理工大學廣州學院電子信息工程學院,510800)
Android是Google在2007年11月5日公布的手機系統平臺,早期由 Google開發,后由(Open Handset Alliance)開發。2012 年7 月數據顯示,Android 占據全球智能手機操作系統市場59%的份額,中國市場為76.7%。Android是一種以Linux為基礎的開放源代碼操作系統,任何人對Android感興趣的人都可以開發基于Android平臺的應用程序并發布,Android 是一種全新的開源手機操作系統,具有強大的應用層API 和豐富的傳感器功能,其開放的平臺有利于開發者開發出各類應用軟件,并且無縫地結合Google 優秀的服務。手機游戲由于具有隨時、隨地、隨身的特性開始在游戲市場占據越來越大的市場份額,本手機游戲是基于Android 系統進行開發,因此,具有更廣泛的使用性。
本游戲主要包括以下三個模塊:界面模塊、運動控制模塊和獎勵物品模塊,各模塊及子模塊如圖1所示。
本游戲中,控制調度功能主要由FootballActivity類來實現,FootballActivity繼承自Activity 類,本游戲中Activity起到了控制器的作用,除了在不同的界面之間切換視圖,Activity還負責處理玩家鍵盤的點擊事件和修改鍵盤狀態等事件。

圖1 系統總體架構Fig.1 System overall architecture
游戲歡迎界面模塊包括WelcomeView、WelcomeThread、WelcomeDrawThread及CutstomGallery。下面將對這些模塊的功能作介紹。
2.2.1 CutstomGallery類
Andriod中的Gallery控件可以實現圖片的水平滾動顯示,本設計中的CutstomGallery即是仿照Gallery控件的實現的,可以作為玩家開始游戲前的俱樂部的選擇器。
2.2.2 WelcomeView類
WelcomeView類繼承于SurfaceView,其主要功能是負責播放歡迎動畫和顯示菜單。
2.2.3 歡迎界面模塊實現
游戲運行后會播放一段歡迎動畫,然后會顯示游戲的菜單,如圖2所示。在菜單最上方是一個俱樂部標志選擇器;中間為游戲中前、中、后場的球員站位分布調節面板以及聲音開關;菜單最下方是退出和開始按鈕。

圖2 游戲的菜單界面Fig.2 Game menu interface

圖3 游戲“進球啦”主界面 Fig.4 Gam“eGoal”main interface
2.3.1 LoadingView、LoadingDrawThread類
該界面在足球游戲表示層中是比較簡單的,主要涉及到的類有LoadingView和LoadingDrawThread,LoadingView用于在不同的界面之間切換的時候顯示進度,LoadingDrawThread則用于刷新LoadingView顯示的內容。僅僅開發是不夠的,必須可以修改LoadingView中繪制內容(如進度值)的方法或線程,否則LoadingView是靜止不動的。因此,需要通過開發和完善中的initSound和updateProgressView方法來實現與LoadingView的通信。
2.4.1 GameView和DrawThread類
在游戲的主界面中主要涉及到的類有GameView和DrawThread,GameView負責顯示游戲畫面,DrawThread用于刷新GameView里的內容。GameView類是游戲中比較重要的一個類,所有游戲中可以繪制的內容都在GameView對象中留有引用。
2.4.2 游戲主界面的實現
在模擬器中運行游戲,經過WelcomeView的菜單選擇和LoadingView的加載后即可進入GameView,如圖3所示。
運動控制模塊是游戲后臺用于控制足球和玩家運動的模塊,其中涉及到的類有Ball、PlayerMoveThread、AI Thread和Player。
2.5.1 玩家球員的運動控制
玩家球員的控制是通過按下鍵盤上的方向鍵來實現的,在中可以通過重寫回調方法來處理按下鍵盤的事件。為了能夠操縱球員移動的頻率,在重寫的鍵盤事件回調方法中不進行球員位置的移動,而是將鍵盤的狀態記錄在成員變量keyState中。
2.5.2 AI球員的運動控制
AI球員的運動控制是通過一個簡單的算法來實現,該算法可以描述如下:每個固定的時間,讀取足球的運動方向,如果足球的運動方向偏左,則將AI球員的運動方向設置為向左,如果偏右則設置運動方向向右。實現AI運動邏輯的是AIThread和PlayerMoveThread。
手機游戲程序與普通PC機上的游戲程序基本的設計思想和基本的編程技術都是相同的,只是由于手機中系統資源的稀缺,設計時必須要仔細考慮系統資源的承受能力,一個重要的原則就是要求游戲的設計盡量縮減對系統資源的使用。本文敘述了游戲的總體功能架構,詳細介紹了各個功能模塊的具體實現。重點介紹游戲中用到的Android關鍵技術,如通過Activity類實現控制調度模塊的對各個界面的切換管理;在多線程方面,Android提供了非常好的支持。在游戲中廣范應用多線程機制,使得多個任務并發處理,提高了游戲的效率,給玩家提供較好的用戶體驗。
[1]奚洋,郭健.基于Android的連連看游戲的算法研究[J].無線互聯科技,2012,(9):122
[2]耿東久,索岳,陳渝.基于Android 手機的遠程訪問和控制系統 [J].計算機應用,2011,(2):559-561
[3]郭東恩,吳剛.基于Android平臺的數獨游戲設計與實現[J].計算機與數字工程,2012,(3):46-48
[4]鄧珍榮,張敬偉.基于J2ME手機游戲設計及實現[J].計算機與現代化,2009,(9):122-124
[5]林立忠,吳愛燕.基于J2ME的嵌入式手機游戲的設計與開發 [J].煤炭技術,2010,29(2):198-200
[6]王賀,劉知青.基于Android的圍棋游戲開發[J].計算機光盤軟件與應用,2012,(22):224-228