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