【正文】
//箱子的個數(shù) } } 游戲地圖模塊 采用 2D 模擬 3D 實現(xiàn) (斜視角) 視覺效果 整個推箱子游戲采用斜 45 度視覺效果,在整體上給人以立體仿真的效果 ,具體實現(xiàn)過程如下: 45 度視覺效果通常需要采用 斜視圖的坐標(biāo)變換, 最直接的想法可能就是利用三角函數(shù)。 num++。j11。i10。//先轉(zhuǎn)化成一維字符數(shù)組 num=0。 } /**上層地板地圖 */ char[] map2Char=new char[()]。j++) { map[i][j]=((mapChar[num]))。i++) for(int j=0。//初始化一維數(shù)組下標(biāo) for(int i=0。 mapChar=()。 } return result。 result = (buffer, ENCODING)。 //創(chuàng)建 byte數(shù)組 byte[] buffer = new byte[lenght]。 try { InputStream in = ().getAssets().open(fileName)。 public GetMapFromFile(Activity mainActivity) { =mainActivity。(例 第一 關(guān)上層 地圖 文件 存儲 數(shù)據(jù)為11111111111100400000011030003000110000000001100010000011000030000110000000001100000000011000000000111111111111) 具體地圖文件在實現(xiàn)中的位置如下 圖 assets 文件夾: 圖 51:地圖文件存儲結(jié)構(gòu) 常熟理工學(xué)院畢業(yè)設(shè)計(論文) 25 關(guān)鍵代碼如下: /** 從 assets 文件夾中獲取文件并讀取數(shù)據(jù) */ public class GetMapFromFile { public static final String ENCODING = UTF8。 游戲地圖模塊的實現(xiàn) 游戲 地圖 模塊 存儲結(jié)構(gòu)的實 現(xiàn) 游戲地圖模塊實現(xiàn)是整個游戲過程的核心,由于游戲的整個過程 呈現(xiàn) 三維立體的效果,所以游戲地圖設(shè)置也是至關(guān)重要的一塊,游戲地圖整體是用二維數(shù)組存儲在文件中的,每次打開游戲會初始化一次地圖文件 ,游戲地圖分為兩層地板 : 底層地板分為三類情況,二維數(shù)組值 1代表灰色地磚,二維數(shù)組值 0 代表米色地磚,二維數(shù)組值 3 代表目 的地。游戲音效選擇模塊供用戶選擇喜好的音效,增強用戶體驗,玩家最高游戲記錄查詢供用戶查看游戲水平,保存記錄退出模塊主要是提供用戶保存歷史記錄的功能。游戲音量設(shè)置模塊主要是調(diào)節(jié)背景音量大小的模塊。 類結(jié)構(gòu)圖如圖 49所示 常熟理工學(xué)院畢業(yè)設(shè)計(論文) 23 + o n D r a w ( i n c a n v a s )+ o n T o u c h E v e n t ( i n e v e n t )+ r e c t D r a w ( i n c a n v a s , i n x : i n t , i n y : i n t , i n )+ c o o r d i n a t e X C h a n g e ( i n x : i n t , i n y : i n t )+ c o o r d i n a t e Y C h a n g e ( i n x : i n t , i n y : i n t )+ s u r f a c e C r e a t e d ( i n h o l d e r )+ s u r f a c e D e s t r o y e d ( i n h o l d e r ) m a i n A c t i v i t y : M a i n A c t i v i t y g a m e T h r e a d : G a m e T h r e a dG a m e V i e w+ o n C r e a t e ( i n s a v e I n s t a n c e S t a t e )+ o n C r e a t e O p t i o n s M e n u ( i n i t e m )+ o n O p t i o n s I t e m S e l e c t e d ( i n i t e m )+ i n i t M e n u V i e w ( )+ i n i t G a m e V i e w ( )+ o n K e y U p ( i n k e y C o d e : i n t , i n e v e n t )+ o n K e y D o w n ( i n k e y C o d e : i n t , i n e v e n t )+ o n A c t i v i t y ( i n r e q u e s t C o d e : i n t , i n r e s u l t C o d e : i n t , i n d a t a )+ g a m e V i e w : G a m e V i e w+ k e y T h r e a d : K e y T h r e a d m a n : M a n m y H a n d l e rM a i n A c t i v i t y* *+ o n C r e a t e ( i n s a v e d I n s t a n c e S t a t e ) b a c k S o u n d 1 b a c k S o u n d 2 b a c k S o u n d 3 b a c k S o u n d 4 m a i n A c t i v i t y : M a i n A c t i v i t y m y I t e m C l i c k L i s t e n e rA c t i v i t y L i s t11I n t e n tr a w提 供 后 臺 音 樂 播 放 功 能+ o n S t a r t ( i n i n t e n t , i n s t a r t I d : i n t )+ o n D e s t r o y ( ) b a c k S o u n d 1 b a c k S o u n d 2 b a c k S o u n d 3 b a c k S o u n d 4 s t a r t S o u n dM y S e r v i c e 圖 49游戲音效選擇類結(jié)構(gòu)圖 常熟理工學(xué)院畢業(yè)設(shè)計(論文) 24 5 系統(tǒng)實現(xiàn) 實現(xiàn)概況 本系統(tǒng)可分 為游戲過程 控制 模塊、游戲音量設(shè)置模塊、游戲規(guī)則模塊、游戲關(guān)卡設(shè)置模塊、音效選擇模塊、玩家最高記錄查詢,保存記錄退出模塊 七個功能模塊。 + o n D r a w ( i n c a n v a s )+ o n T o u c h E v e n t ( i n e v e n t )+ r e c t D r a w ( i n c a n v a s , i n x : i n t , i n y : i n t , i n )+ c o o r d i n a t e X C h a n g e ( i n x : i n t , i n y : i n t )+ c o o r d i n a t e Y C h a n g e ( i n x : i n t , i n y : i n t )+ s u r f a c e C r e a t e d ( i n h o l d e r )+ s u r f a c e D e s t r o y e d ( i n h o l d e r ) m a i n A c t i v i t y : M a i n A c t i v i t y g a m e T h r e a d : G a m e T h r e a dG a m e V i e w+ o n C r e a t e ( i n s a v e I n s t a n c e S t a t e )+ o n C r e a t e O p t i o n s M e n u ( i n i t e m )+ o n O p t i o n s I t e m S e l e c t e d ( i n i t e m )+ i n i t M e n u V i e w ( )+ i n i t G a m e V i e w ( )+ o n K e y U p ( i n k e y C o d e : i n t , i n e v e n t )+ o n K e y D o w n ( i n k e y C o d e : i n t , i n e v e n t )+ o n A c t i v i t y ( i n r e q u e s t C o d e : i n t , i n r e s u l t C o d e : i n t , i n d a t a )+ g a m e V i e w : G a m e V i e w+ k e y T h r e a d : K e y T h r e a d m a n : M a n m y H a n d l e rM a i n A c t i v i t y* *+ o n C r e a t e ( i n s a v e d I n s t a n c e S t a t e ) m y B a c k L i s t e n e r m y S t a r t L i s t e n e rR u l e A c t i v i t y11I n t e n t 圖 47 游戲規(guī)則 模塊類結(jié)構(gòu)圖 游戲規(guī)則模塊類結(jié)構(gòu)圖 游戲關(guān)卡設(shè)置模塊通過 LevelSelectActivity 響應(yīng)游戲關(guān)卡的的設(shè)置,然后通過公共類 MainActivity 去讀取相應(yīng)的 map 關(guān)卡文件 (地圖文件主要存儲在 Android 系統(tǒng)文件的Assets 目錄下 )。 + o n D r a w ( i n c a n v a s )+ o n T o u c h E v e n t ( i n e v e n t )+ r e c t D r a w ( i n c a n v a s , i n x : i n t , i n y : i n t , i n )+ c o o r d i n a t e X C h a n g e ( i n x : i n t , i n y : i n t )+ c o o r d i n a t e Y C h a n g e ( i n x : i n t , i n y : i n t )+ s u r f a c e C r e a t e d ( i n h o l d e r )+ s u r f a c e D e s t r o y e d ( i n h o l d e r ) m a i n A c t i v i t y : M a i n A c t i v i t y g a m e T h r e a d : G a m e T h r e a dG a m e V i e w+ o n C r e a t e ( i n s a v e I n s t a n c e S t a t e )+ o n C r e a t e O p t i o n s M e n u ( i n i t e m )+ o n O p t i o n s I t e m S e l e c t e d ( i n i t e m )+ i n i t M e n u V i e w ( )+ i n i t G a m e V i e w ( )+ o n K e y U p ( i n k e y C o d e : i n t , i n e v e n t )+ o n K e y D o w n ( i n k e y C o d e : i n t , i n e v e n t )+ o n A c t i v i t y ( i n r e q u