摘? 要:在移動(dòng)產(chǎn)業(yè)高速發(fā)展的今天,手機(jī)游戲已經(jīng)逐漸成為人們生活中必不可少的一部分。而智能手機(jī)的出現(xiàn),更是給手機(jī)游戲提供了高速發(fā)展的平臺(tái)和契機(jī)。本文主要介紹了一款基于Starling框架的安卓平臺(tái)的捕魚游戲的開發(fā)過程。首先,介紹了游戲的策劃與需求分析,其次,重點(diǎn)介紹了游戲的主要模塊的設(shè)計(jì)與實(shí)現(xiàn),最后,介紹了游戲的發(fā)布及配置方法。
關(guān)鍵詞:Android;Adobe AIR;ActionScript3.0;Starling
中圖分類號(hào):TP311.52?????????? 文獻(xiàn)標(biāo)識(shí)碼:A
1?? 引言(Introduction)
手機(jī)游戲作為人們重要的娛樂方式之一,近年來,伴隨著移動(dòng)網(wǎng)絡(luò)和移動(dòng)終端性能的不斷提高與完善,得到非常迅猛的發(fā)展,儼然成為了移動(dòng)行業(yè)的一個(gè)“金礦”[1]。越來越多的廠商滲透入手機(jī)游戲領(lǐng)域,手機(jī)游戲的營(yíng)銷額以及使用人數(shù)也逐年遞增。2010年手機(jī)游戲市場(chǎng)規(guī)模已經(jīng)達(dá)到25億元。據(jù)調(diào)查,網(wǎng)民中,玩手機(jī)游戲的用戶比例達(dá)94.7%,從而反映出手機(jī)游戲之火暴。
2?? 系統(tǒng)實(shí)現(xiàn)技術(shù)(System realizing technology)
Starling是在Stage3D APIs基礎(chǔ)上開發(fā)的一種ActionScript3.0 2D框架(可用于Flash Player 11和Adobe AIR 3的桌面)[2]。Starling是為游戲開發(fā)設(shè)計(jì)的,但是它也可以被應(yīng)用于其他程序。Starling的工作方式也很簡(jiǎn)單。由于Starling是基于Stage3D的API開發(fā)的,所以它的驅(qū)動(dòng)關(guān)系位于Stage3D之上,而Stage3D有能力去控制OpenGL、DirectX這些電腦顯卡驅(qū)動(dòng)或OpenGL ES2這些手機(jī)顯卡驅(qū)動(dòng),最終由這些顯卡驅(qū)動(dòng)程序去驅(qū)動(dòng)GPU工作[3]。Starling驅(qū)動(dòng)GPU的方式如圖1所示。
圖1 驅(qū)動(dòng)關(guān)系圖
Fig.1 Driving diagram
通過Starling的使用,可以大大簡(jiǎn)化動(dòng)畫的創(chuàng)建過程,只要提供MovieClip每一幀的紋理素材給Starling MovieClip即可。Starling可以減少開發(fā)難度并可以很快地寫出使用GPU加速的應(yīng)用程序而不必接觸那些復(fù)雜的底層Stage3D API。這使其成為采用Flash AS開發(fā)游戲所必不可少的部分。
3?? 系統(tǒng)功能設(shè)計(jì)(System function design)
該游戲?qū)崿F(xiàn)捕魚類游戲的所有基本功能,同時(shí),為了滿足玩家的個(gè)人需求,在游戲中加入了重力感應(yīng)的船只移動(dòng)功能,從而使游戲玩法更新穎、更加吸引玩家[4]。良好的用戶界面,能夠在視覺上吸引玩家。主界面主要包括背景圖片、船只、人物、武器、暫停按鈕、商店按鈕、金錢和捕魚數(shù)顯示、魚類顯示。主要功能需求設(shè)計(jì)用例圖如圖2所示。
圖2 游戲功能用例圖
Fig.2 Use case diagram of game features
4? 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)(Detailed design and
implementation)
Main作為Starling的文檔類,用于啟動(dòng)Starling。Game作為Starling的入口類,負(fù)責(zé)創(chuàng)建游戲的主界面。各個(gè)類之間通過按鈕點(diǎn)擊操作控制進(jìn)行相互之間的調(diào)度,從而實(shí)現(xiàn)游戲整體功能。
4.1?? Starling框架使用
Starling框架使用很簡(jiǎn)單,Starling充分考慮到其使用時(shí)的簡(jiǎn)單性,我們只需要在工程中添加Starling的類庫(kù),即可調(diào)用其相關(guān)部件。Starling類庫(kù)詳細(xì)添加方法如下:?jiǎn)螕艄こ痰腇LA文件中的腳本設(shè)置。打開腳本設(shè)置后,只需在庫(kù)路徑中將Starling的類庫(kù)Starling.swc添加即可,如圖3所示。
圖3 腳本設(shè)置
Fig.3 Script settings
至此,Starling的類庫(kù)已經(jīng)包含到工程中,在下面的開發(fā)中就可以在類中調(diào)用Starling框架提供的各種控件。啟動(dòng)Starling的具體代碼如下:
public class Main extends MovieClip {
private var mStarling:Starling;
public function Main() {
stage.align = StageAlign.TOP_LEFT;
//畫面無縮放
stage.scaleMode=StageScaleMode.NO_BORDER;
//設(shè)置程序入口類,創(chuàng)建Starling
mStarling=new Starling(Game,stage);
//設(shè)置畫面渲染類型
mStarling.antiAliasing=1;
//啟動(dòng)Starling
mStarling.start();
}
}
啟動(dòng)Starling后,項(xiàng)目的渲染將由Starling來控制,這樣會(huì)大大減少項(xiàng)目對(duì)機(jī)器性能的需求,提高工作效率。
4.2?? 資源加載
該游戲使用TexturePacker將圖片資源合并成一張大圖片,圖片的加載需要編寫一個(gè)專門的資源加載類來控制。首先需要將TexturePacker生成的數(shù)據(jù)文件導(dǎo)入到工程中。在主文件中打開目標(biāo)設(shè)置,然后將數(shù)據(jù)文件添加到包括的文件列表中,如圖4所示。
圖4 添加數(shù)據(jù)文件
Fig.4 Add data file
圖片數(shù)據(jù)文件添加到項(xiàng)目中就可以編寫加載資源的類了。使用URLRequest獲取XML文件地址,再通過URLLoader加載XML的內(nèi)容,再通過大圖片以及數(shù)據(jù)的結(jié)合定位到對(duì)應(yīng)的小圖片。
5?? 結(jié)論(Conclusion)
通過游戲的界面測(cè)試中相應(yīng)的功能測(cè)試,游戲設(shè)計(jì)完成度良好,達(dá)到了預(yù)期需求。基本做到美觀、友好、便于操作,良好實(shí)現(xiàn)游戲的可玩性,能夠很好的適應(yīng)玩家的入手,但是在整個(gè)設(shè)計(jì)中仍存在著交互模式過少、缺乏明顯的亮點(diǎn)等不足,會(huì)在以后的研究中改進(jìn)。
參考文獻(xiàn)(References)
[1] 周穎,沈艷秋.手機(jī)發(fā)展史[J].科技信息,2010,(33):599-600.
[2] 王友釗,等.ANDROID系統(tǒng)開發(fā)與實(shí)踐[M].北京:清華大學(xué)出
版社,2013.
[3] 斯白[加].ActionScript3.0游戲設(shè)計(jì)基礎(chǔ)(第二版)[M].北京:電
子工業(yè)出版社,2013.
[4] 布羅西耶[美].Android移動(dòng)應(yīng)用開發(fā):基于Adobe AIR[M].
北京:清華大學(xué)出版社,2012.
作者簡(jiǎn)介:
俞琳琳(1980-),女,本科,助教.研究領(lǐng)域:軟件工程,數(shù)據(jù)
挖掘.endprint
;?;?;?;?; stage.align = StageAlign.TOP_LEFT;
;?;?;?;?;?; //畫面無縮放
;?;?;?; stage.scaleMode=StageScaleMode.NO_BORDER;
;?;?;?;?;?; //設(shè)置程序入口類,創(chuàng)建Starling
;?;?; mStarling=new Starling(Game,stage);
; //設(shè)置畫面渲染類型
;?; mStarling.antiAliasing=1;
;?;?;?;?;?;?; //啟動(dòng)Starling
;?;?;?; mStarling.start();
;}
}
啟動(dòng)Starling后,項(xiàng)目的渲染將由Starling來控制,這樣會(huì)大大減少項(xiàng)目對(duì)機(jī)器性能的需求,提高工作效率。
4.2?;?; 資源加載
該游戲使用TexturePacker將圖片資源合并成一張大圖片,圖片的加載需要編寫一個(gè)專門的資源加載類來控制。首先需要將TexturePacker生成的數(shù)據(jù)文件導(dǎo)入到工程中。在主文件中打開目標(biāo)設(shè)置,然后將數(shù)據(jù)文件添加到包括的文件列表中,如圖4所示。
;圖4 添加數(shù)據(jù)文件
;?;?;?;?;?;?;?;?;?;?;?;?; Fig.4 Add data file
圖片數(shù)據(jù)文件添加到項(xiàng)目中就可以編寫加載資源的類了。使用URLRequest獲取XML文件地址,再通過URLLoader加載XML的內(nèi)容,再通過大圖片以及數(shù)據(jù)的結(jié)合定位到對(duì)應(yīng)的小圖片。
5?;?; 結(jié)論(Conclusion)
通過游戲的界面測(cè)試中相應(yīng)的功能測(cè)試,游戲設(shè)計(jì)完成度良好,達(dá)到了預(yù)期需求?;咀龅矫烙^、友好、便于操作,良好實(shí)現(xiàn)游戲的可玩性,能夠很好的適應(yīng)玩家的入手,但是在整個(gè)設(shè)計(jì)中仍存在著交互模式過少、缺乏明顯的亮點(diǎn)等不足,會(huì)在以后的研究中改進(jìn)。
參考文獻(xiàn)(References)
[1] 周穎,沈艷秋.手機(jī)發(fā)展史[J].科技信息,2010,(33):599-600.
[2] 王友釗,等.ANDROID系統(tǒng)開發(fā)與實(shí)踐[M].北京:清華大學(xué)出
;?;?;?;?; 版社,2013.
[3] 斯白[加].ActionScript3.0游戲設(shè)計(jì)基礎(chǔ)(第二版)[M].北京:電
;?;?;?;?; 子工業(yè)出版社,2013.
[4] 布羅西耶[美].Android移動(dòng)應(yīng)用開發(fā):基于Adobe AIR[M].
;?;?;?;?; 北京:清華大學(xué)出版社,2012.
作者簡(jiǎn)介:
俞琳琳(1980-),女,本科,助教.研究領(lǐng)域:軟件工程,數(shù)據(jù)
;?;?;?;?; 挖掘.endprint
;?;?;?;?; stage.align = StageAlign.TOP_LEFT;
;?;?;?;?;?; //畫面無縮放
;?;?;?; stage.scaleMode=StageScaleMode.NO_BORDER;
;?;?;?;?;?; //設(shè)置程序入口類,創(chuàng)建Starling
;?;?; mStarling=new Starling(Game,stage);
; //設(shè)置畫面渲染類型
;?; mStarling.antiAliasing=1;
;?;?;?;?;?;?; //啟動(dòng)Starling
;?;?;?; mStarling.start();
;}
}
啟動(dòng)Starling后,項(xiàng)目的渲染將由Starling來控制,這樣會(huì)大大減少項(xiàng)目對(duì)機(jī)器性能的需求,提高工作效率。
4.2?;?; 資源加載
該游戲使用TexturePacker將圖片資源合并成一張大圖片,圖片的加載需要編寫一個(gè)專門的資源加載類來控制。首先需要將TexturePacker生成的數(shù)據(jù)文件導(dǎo)入到工程中。在主文件中打開目標(biāo)設(shè)置,然后將數(shù)據(jù)文件添加到包括的文件列表中,如圖4所示。
;圖4 添加數(shù)據(jù)文件
;?;?;?;?;?;?;?;?;?;?;?;?; Fig.4 Add data file
圖片數(shù)據(jù)文件添加到項(xiàng)目中就可以編寫加載資源的類了。使用URLRequest獲取XML文件地址,再通過URLLoader加載XML的內(nèi)容,再通過大圖片以及數(shù)據(jù)的結(jié)合定位到對(duì)應(yīng)的小圖片。
5?;?; 結(jié)論(Conclusion)
通過游戲的界面測(cè)試中相應(yīng)的功能測(cè)試,游戲設(shè)計(jì)完成度良好,達(dá)到了預(yù)期需求?;咀龅矫烙^、友好、便于操作,良好實(shí)現(xiàn)游戲的可玩性,能夠很好的適應(yīng)玩家的入手,但是在整個(gè)設(shè)計(jì)中仍存在著交互模式過少、缺乏明顯的亮點(diǎn)等不足,會(huì)在以后的研究中改進(jìn)。
參考文獻(xiàn)(References)
[1] 周穎,沈艷秋.手機(jī)發(fā)展史[J].科技信息,2010,(33):599-600.
[2] 王友釗,等.ANDROID系統(tǒng)開發(fā)與實(shí)踐[M].北京:清華大學(xué)出
;?;?;?;?; 版社,2013.
[3] 斯白[加].ActionScript3.0游戲設(shè)計(jì)基礎(chǔ)(第二版)[M].北京:電
;?;?;?;?; 子工業(yè)出版社,2013.
[4] 布羅西耶[美].Android移動(dòng)應(yīng)用開發(fā):基于Adobe AIR[M].
;?;?;?;?; 北京:清華大學(xué)出版社,2012.
作者簡(jiǎn)介:
俞琳琳(1980-),女,本科,助教.研究領(lǐng)域:軟件工程,數(shù)據(jù)
;?;?;?;?; 挖掘.endprint
;?;?;?;?; stage.align = StageAlign.TOP_LEFT;
;?;?;?;?;?; //畫面無縮放
;?;?;?; stage.scaleMode=StageScaleMode.NO_BORDER;
;?;?;?;?;?; //設(shè)置程序入口類,創(chuàng)建Starling
;?;?; mStarling=new Starling(Game,stage);
; //設(shè)置畫面渲染類型
;?; mStarling.antiAliasing=1;
;?;?;?;?;?;?; //啟動(dòng)Starling
;?;?;?; mStarling.start();
;}
}
啟動(dòng)Starling后,項(xiàng)目的渲染將由Starling來控制,這樣會(huì)大大減少項(xiàng)目對(duì)機(jī)器性能的需求,提高工作效率。
4.2?;?; 資源加載
該游戲使用TexturePacker將圖片資源合并成一張大圖片,圖片的加載需要編寫一個(gè)專門的資源加載類來控制。首先需要將TexturePacker生成的數(shù)據(jù)文件導(dǎo)入到工程中。在主文件中打開目標(biāo)設(shè)置,然后將數(shù)據(jù)文件添加到包括的文件列表中,如圖4所示。
;圖4 添加數(shù)據(jù)文件
;?;?;?;?;?;?;?;?;?;?;?;?; Fig.4 Add data file
圖片數(shù)據(jù)文件添加到項(xiàng)目中就可以編寫加載資源的類了。使用URLRequest獲取XML文件地址,再通過URLLoader加載XML的內(nèi)容,再通過大圖片以及數(shù)據(jù)的結(jié)合定位到對(duì)應(yīng)的小圖片。
5?;?; 結(jié)論(Conclusion)
通過游戲的界面測(cè)試中相應(yīng)的功能測(cè)試,游戲設(shè)計(jì)完成度良好,達(dá)到了預(yù)期需求?;咀龅矫烙^、友好、便于操作,良好實(shí)現(xiàn)游戲的可玩性,能夠很好的適應(yīng)玩家的入手,但是在整個(gè)設(shè)計(jì)中仍存在著交互模式過少、缺乏明顯的亮點(diǎn)等不足,會(huì)在以后的研究中改進(jìn)。
參考文獻(xiàn)(References)
[1] 周穎,沈艷秋.手機(jī)發(fā)展史[J].科技信息,2010,(33):599-600.
[2] 王友釗,等.ANDROID系統(tǒng)開發(fā)與實(shí)踐[M].北京:清華大學(xué)出
;?;?;?;?; 版社,2013.
[3] 斯白[加].ActionScript3.0游戲設(shè)計(jì)基礎(chǔ)(第二版)[M].北京:電
;?;?;?;?; 子工業(yè)出版社,2013.
[4] 布羅西耶[美].Android移動(dòng)應(yīng)用開發(fā):基于Adobe AIR[M].
;?;?;?;?; 北京:清華大學(xué)出版社,2012.
作者簡(jiǎn)介:
俞琳琳(1980-),女,本科,助教.研究領(lǐng)域:軟件工程,數(shù)據(jù)
;?;?;?;?; 挖掘.endprint