摘 要:現(xiàn)如今,智能手機(jī)隨處可見,各個(gè)年齡層的人基本上都開始使用智能手機(jī),各式各樣的手機(jī)APP也開始爭奇斗艷,都想在這個(gè)手機(jī)APP的市場(chǎng)里脫穎而出。由于巨大的市場(chǎng)需求,很多開發(fā)者選擇了開發(fā)游戲APP。一個(gè)好的游戲APP需要一個(gè)好的設(shè)計(jì),從外到里,從UI設(shè)計(jì)到內(nèi)部數(shù)據(jù)存儲(chǔ),都需要一個(gè)好的設(shè)計(jì)。
關(guān)鍵詞:android;手機(jī);雷霆大戰(zhàn);游戲
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-7712 (2014) 14-0000-01
自從智能手機(jī)開始風(fēng)靡以后,各式各樣的APP開始出現(xiàn),其中有大部分APP都是游戲。據(jù)統(tǒng)計(jì),在當(dāng)前的APP市場(chǎng)里,游戲方面APP不僅是在免費(fèi)排行榜占榜首,在收費(fèi)排行榜也是當(dāng)之無愧的top one。不難發(fā)現(xiàn),不光是年輕人愛拿著手機(jī)玩游戲,不少父母人群也喜歡拿著手機(jī)玩游戲。可見手機(jī)游戲的影響已經(jīng)十分廣泛。
由于這巨大的市場(chǎng)需求,不少手機(jī)應(yīng)用開發(fā)者選擇了游戲APP作為他們的目標(biāo)。但在這個(gè)游戲APP泛濫的時(shí)代,很少有一個(gè)APP能一下子吸引人的眼球。反而往往是一個(gè)設(shè)計(jì)簡單的APP能一下子讓人欲罷不能,在APP的世界里不乏這些例子。比如說FLAPPY BIRD,就是一直簡單的小鳥,但是它就是有一種讓人欲罷不能的魔力,多少人被那只可惡的小鳥折磨的不成人形,多少手機(jī)被那只鳥摔得慘不忍睹。再比如說MYOTee臉萌,它的興起似乎在一夜之間。不知道從什么時(shí)候開始起,微博、空間、人人、朋友圈各種社交圈子朋友們突然就開始發(fā)一些自制的臉萌圖片,更是有很多人拿臉萌當(dāng)頭像。在這個(gè)人人都喜歡賣萌的年代,這種app無疑是抓住了年輕人們的興趣點(diǎn)。
在中國,使用ios和windows phone的人數(shù)遠(yuǎn)遠(yuǎn)比不上使用android平臺(tái)的人。所以就以android為例,來談?wù)勥m合設(shè)計(jì)和實(shí)現(xiàn)一個(gè)手機(jī)APP。
首先,需要確定一個(gè)主題。游戲的主題可以使各式各樣,不要覺得自己的想法沒有創(chuàng)意,其實(shí)最沒有創(chuàng)意的最無聊的才是最有創(chuàng)意的。從前面的例子可以看出,一些想法復(fù)雜的游戲不適合大眾,只有簡單一目了然的游戲才會(huì)很快的被人們接受。下面以雷霆大戰(zhàn)即一個(gè)類似雷電的手機(jī)小游戲來說說具體設(shè)計(jì)過程。
不管是手機(jī)游戲還是PC端游戲,需要設(shè)計(jì)的都是UI、代碼以及數(shù)據(jù)的存儲(chǔ)。首先來說說UI設(shè)計(jì)。所謂UI,即使User Interface,所以就是直接與用戶打交道的。一般的手機(jī)游戲界面都喜歡用surfaceview來制作。Surfaceview的雙緩沖機(jī)制可以解決一般view里界面刷新延遲的問題,可以讓界面不閃爍的同時(shí)提高畫圖效率。Surfaceview的雙緩沖機(jī)制的核心就在于它有兩個(gè)Canvas,然后通過他的lockCanvas()方法可以獲取到畫布,然后可以再這個(gè)畫布上進(jìn)行需要進(jìn)行的操作,最后通過unlockCanvasAndPost()方法在畫圖結(jié)束之后提交畫布,讓畫布上的東西呈現(xiàn)在surfaceview里。
一個(gè)APP的好壞不是由開發(fā)者去談?wù)摚怯捎脩羧ピu(píng)判。而用戶去評(píng)判的第一標(biāo)準(zhǔn)就是這個(gè)APP的界面,因?yàn)橛脩糁苯咏佑|和第一接觸的就是界面。如果界面不好看或者操作很復(fù)雜,用戶可能就沒有繼續(xù)深入了解這個(gè)APP的興趣,而直接卸載。例如說雷霆大戰(zhàn)。既然是一個(gè)仿雷電游戲,那就不要有太多的功能,只需要一架主機(jī),然后一些敵機(jī)即可。
Activity是Android開發(fā)中很重要也是最基本的四大組件之一(其他三大組件為:Service、Content Provider、BroadcastReceiver)。一個(gè)Activity提供了一個(gè)屏幕,即與UI息息相關(guān)。Activity整個(gè)生命周期從oncreate(Bundle savedInstanceState)開始到onDestory()結(jié)束。對(duì)于雷霆大戰(zhàn)來說,Activity里需要寫的就是界面以及一些初始化信息。
對(duì)于游戲本身,可以采用多線程技術(shù)。因?yàn)槿绻徊捎镁€程,可能界面會(huì)阻塞,而一般阻塞時(shí)間在5秒左右或者更久,就會(huì)造成程序無響應(yīng)。但是在android里線程不能直接操縱UI,否則會(huì)報(bào)異常。Android里線程操縱UI的方式有多種方式,比如說重寫Handler里的SendMessage(Message msg)方法,然后在線程里調(diào)用該方法。或者可以Activity里的runOnRiThread(Runnable runnable)方法來操縱。還有其他幾種方法就不一一列舉了。雷霆大戰(zhàn)里可能需要很多的線程來控制一架架飛機(jī),所以可以采用線程池技術(shù)。
然后是關(guān)于數(shù)據(jù)的存儲(chǔ)。如果一個(gè)APP只有少量的數(shù)據(jù)需要存儲(chǔ),那么只需要使用android提供的一個(gè)接口——SharedPreference就可以了。使用這個(gè)接口可以保存少量的簡單數(shù)據(jù),所以它是以鍵值對(duì)的形式保存數(shù)據(jù)的。這個(gè)接口適合保存的信息有文件的一些簡單配置信息或者需要存儲(chǔ)的一些簡單數(shù)據(jù),例如最高分、最低分等。如果有較多的數(shù)據(jù)需要存儲(chǔ),那么android提供了一個(gè)內(nèi)置的數(shù)據(jù)庫——SQLite。但是如果有很大量的數(shù)據(jù)需要進(jìn)行存儲(chǔ),那么這個(gè)APP的設(shè)計(jì)就需要改正或者不能將這些數(shù)據(jù)放在SQLite里。因?yàn)槭謾C(jī)的存儲(chǔ)能力畢竟有限,不能讓一個(gè)APP占據(jù)了手機(jī)的所有內(nèi)存。雷霆大戰(zhàn)對(duì)于手機(jī)來說應(yīng)該是一個(gè)小APP,這樣才能讓人容易接受它。所以它需要存儲(chǔ)的數(shù)據(jù)就可以只需要用到SharedPreference——只需要存儲(chǔ)一些配置文件,比如說音量的開關(guān)、排行榜等。這樣能使得一個(gè)APP顯得簡小方便。
一個(gè)好的游戲不僅需要一個(gè)好的創(chuàng)意,更需要一個(gè)好的設(shè)計(jì),這樣才能讓人耳目一新。
參考文獻(xiàn):
[1]聶茹,李海恩.基于Android平臺(tái)的瘋狂足球手機(jī)游戲的設(shè)計(jì)與實(shí)現(xiàn)[J].電子測(cè)試,2013(20):3-4.
[2]楊麗.基于安卓平臺(tái)的益智類手機(jī)游戲的設(shè)計(jì)[J].淮海工學(xué)院學(xué)報(bào)(社會(huì)科學(xué)版),2012(16):88-90.
[3]楊曉昆.論安卓手機(jī)安全及安卓手機(jī)的木馬編程[J].消費(fèi)電子,2014(04):190.
[4]朱全銀,張帥,沈健春.基于J2ME的移動(dòng)網(wǎng)絡(luò)泡泡堂游戲設(shè)計(jì)與仿真[J].陜西理工學(xué)院學(xué)報(bào)(自然科學(xué)版),2010(03):30-35.
[5]蔣政華.基于Libgdx的Android關(guān)卡類游戲設(shè)計(jì)與實(shí)現(xiàn)[D].華中科技大學(xué),2013.
[6]王永固,張婷,李瑋.基于心流理論的教育游戲設(shè)計(jì)框架要素研究——以特殊兒童言語學(xué)習(xí)游戲?yàn)榘咐齕J].遠(yuǎn)程教育雜志,2014(03):97-104.