999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android的2048手機(jī)游戲App設(shè)計(jì)與實(shí)現(xiàn)

2017-08-24 15:02:06沈旭
計(jì)算機(jī)時(shí)代 2017年8期
關(guān)鍵詞:動(dòng)畫界面區(qū)域

沈旭

摘 要: 開發(fā)2048手機(jī)游戲App的目的,在于它是一款休閑益智小游戲,可以通過游戲減輕精神壓力,鍛煉思維能力。介紹了游戲App的設(shè)計(jì)開發(fā)過程,對游戲的邏輯算法、觸控交互、卡片設(shè)計(jì)、統(tǒng)計(jì)計(jì)分等作了詳細(xì)剖析。最后對該App做了Android手機(jī)實(shí)際測試,結(jié)果表明,游戲App達(dá)到了設(shè)計(jì)要求,可以滿足人們休閑益智的需要,同時(shí)對設(shè)計(jì)開發(fā)流程作了總結(jié)。

關(guān)鍵詞: Android; App; 2048; 游戲

中圖分類號(hào):TP311.1 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2017)08-29-04

Abstract: The purpose of developing 2048 number puzzle game App is that it is a casual puzzle game, which can relieve mental pressure and exercise thinking ability through games. This paper introduces the design and development process of game App, and analyzes the logic algorithm, touch interaction, card design and statistical scoring etc. the App is tested on the Android mobile phone, and the results show that the game App meets the design requirements, and can meet the needs of people's leisure enjoying and intelligence benefiting. At the same time, the design and development process is summarized.

Key words: Android; App; 2048; game

0 引言

隨著信息技術(shù)的快速發(fā)展,以智能終端為平臺(tái)的應(yīng)用在人們生活中占據(jù)了越來越重要的位置。物質(zhì)生活條件的提高,使人們產(chǎn)生更多精神方面的需求,如手機(jī)應(yīng)用App就成了提高精神生活需求的新平臺(tái)[1]。近年來,手機(jī)游戲成為游戲產(chǎn)業(yè)中最重要的一部分,涌現(xiàn)出了諸如憤怒的小鳥,水果忍者,flappy bird等諸多優(yōu)秀的手機(jī)游戲App。一款手機(jī)游戲App能夠流行,主要依靠其操作簡單性和益智趣味性[2-3]。2048游戲App是一款休閑益智小游戲,可以調(diào)節(jié)精神、釋放壓力,鍛煉人們的思維能力。

1 游戲規(guī)則與步驟

1.1 游戲規(guī)則

2048游戲規(guī)則簡單易懂:①開始時(shí)棋盤內(nèi)隨機(jī)出現(xiàn)兩個(gè)數(shù)字,2或4;②用戶可以選擇上下左右四個(gè)方向移動(dòng)合并數(shù)字,若棋盤內(nèi)的數(shù)字出現(xiàn)移位或合并,視為有效移動(dòng);③用戶選擇的方向上若有相同的數(shù)字則合并,每次有效移動(dòng)可以同時(shí)合并,但不可以連續(xù)合并;④合并所生成的數(shù)字之和,就是有效得分;⑤用戶選擇的方向行或列前方有空格則出現(xiàn)移位;⑥有效移動(dòng)一步,棋盤無數(shù)字的空格就隨機(jī)出現(xiàn)數(shù)字2或4;⑦棋盤被數(shù)字填滿,無法進(jìn)行有效移動(dòng),游戲失敗;⑧棋盤上出現(xiàn)2048,游戲勝利。游戲App系統(tǒng)結(jié)構(gòu)圖如圖1所示。

1.2 游戲步驟

游戲步驟如下:①點(diǎn)擊2048游戲App圖標(biāo)將會(huì)出現(xiàn)開機(jī)動(dòng)畫,之后進(jìn)入游戲主界面;②在主界面單擊“關(guān)于游戲”菜單進(jìn)入“關(guān)于”界面,介紹游戲版本、版權(quán)等基本信息;③在主界面單擊“游戲幫助”菜單進(jìn)入幫助界面,介紹游戲基本規(guī)則;④在主界面單擊“開始游戲”菜單進(jìn)入游戲界面;⑤用戶點(diǎn)擊重新開始按鈕重玩游戲,通過合并相同數(shù)字,最后達(dá)到2048的時(shí)候獲勝,如果游戲區(qū)域沒有空格,同時(shí)沒有能夠合并的相同數(shù)字則失敗;⑥用戶點(diǎn)擊手機(jī)的返回鍵返回游戲主界面;⑦點(diǎn)擊“退出游戲”,游戲結(jié)束退出。

2 游戲設(shè)計(jì)

2048手機(jī)游戲App設(shè)計(jì)需要解決三個(gè)關(guān)鍵技術(shù):實(shí)現(xiàn)原理、卡片設(shè)計(jì)和觸控交互設(shè)計(jì)。

2.1 實(shí)現(xiàn)原理

⑴ 初始化游戲:調(diào)用函數(shù)initGameView()設(shè)置方格布局朝向和背景顏色,完成游戲初始化,游戲即將開始[4]。

⑵ 開始游戲:調(diào)用startGame()函數(shù)開始游戲,使用addRandomNum()函數(shù)向游戲區(qū)域隨機(jī)加入兩個(gè)方塊。首先搜索游戲區(qū)域所有空位置,然后隨機(jī)生成兩個(gè)數(shù)字2或4,并產(chǎn)生動(dòng)畫效果。

⑶ 卡片移動(dòng):2048游戲通過游戲中所有的方格朝某個(gè)方向移動(dòng),合并相同數(shù)字的方塊[5]。有四個(gè)函數(shù)負(fù)責(zé)移動(dòng),分別是上、下、左、右,這里以往左移動(dòng)為例作分析。對游戲區(qū)域所有方塊向左移動(dòng)。在以下兩種情況下合并數(shù)字:當(dāng)前位置為空,右側(cè)為非空,合并后,當(dāng)前位置卡片的數(shù)字為其右側(cè)卡片的數(shù)字,右側(cè)卡片數(shù)字清零;當(dāng)前位置為非空卡片,右側(cè)卡片數(shù)值和它相等,合并后,當(dāng)前位置卡片數(shù)字取合并后的和,右側(cè)卡片清零。只要卡片產(chǎn)生有效移動(dòng),就調(diào)用addRandomNum()隨機(jī)生成一個(gè)新卡片。

⑷ 游戲計(jì)分:卡片移動(dòng)時(shí),判斷是否有兩個(gè)相同數(shù)字進(jìn)行合并,有合并就計(jì)分,如果是最高分就保存[6]。

2.2 卡片設(shè)計(jì)

在2048游戲App界面設(shè)計(jì)完成后,主要工作就是卡片移動(dòng)和卡片設(shè)置。

⑴ 創(chuàng)建卡片

private void addCards() { //添加卡片樣式的方法

Card c;

LinearLayout line;

LinearLayout.LayoutParams lineLp;

for (int y=0; y < LINES; y++) {

line=new LinearLayout(getContext());

lineLp=new LinearLayout.LayoutParams(-1, Card.width);

addView(line, lineLp);

for (int x=0; x

c=new Card(getContext());

line.addView(c, Card.width, Card.width);

cardsMap[x][y]=c;

}

}

}

⑵ 類Card繼承FrameLayout,作為游戲卡片。使用addScaleAnimation()函數(shù)設(shè)置卡片數(shù)字、樣式及動(dòng)畫效果。

⑶ 判斷在觸屏操作下同一方向上的卡片是否可以合并,可以合并的卡片做加法運(yùn)算。

2.3 觸控交互設(shè)計(jì)

2048手機(jī)游戲App控制卡片能夠根據(jù)觸屏操作在上、下、左、右四個(gè)方向上移動(dòng),因此,需要添加4個(gè)相應(yīng)的事件監(jiān)聽。使用View.OnTouchListener來偵聽觸屏事件,計(jì)算觸屏按下和抬起來時(shí)offsetX和offsetY的值,從而預(yù)測手勢移動(dòng)的方向[7]。

3 游戲架構(gòu)

3.1 主要功能類

⑴ Open類:開機(jī)動(dòng)畫實(shí)現(xiàn)類,主要負(fù)責(zé)開機(jī)動(dòng)畫的生成,通過漸變實(shí)現(xiàn)動(dòng)畫效果。

⑵ IndexActivity類:主界面實(shí)現(xiàn)類,主要負(fù)責(zé)主界面的生成。

⑶ AboutActivity類:關(guān)于游戲?qū)崿F(xiàn)類,主要負(fù)責(zé)關(guān)于界面的生成。

⑷ GameHelp類:游戲幫助實(shí)現(xiàn)類,主要負(fù)責(zé)幫助界面的生成。

⑸ GameView類:游戲中最主要的類,游戲中的操控以及相應(yīng)的事件都包含在該類當(dāng)中。

⑹ Card類:游戲卡片實(shí)現(xiàn)類,主要負(fù)責(zé)游戲卡片,卡片數(shù)字和樣式的實(shí)現(xiàn)。

3.2 主要程序結(jié)構(gòu)

2048手機(jī)游戲App主要程序結(jié)構(gòu)如圖2所示。

通過游戲的運(yùn)行過程介紹程序結(jié)構(gòu)圖中各個(gè)類在游戲中的作用,具體如下:①點(diǎn)擊圖標(biāo)啟動(dòng)游戲后,首先看到開機(jī)動(dòng)畫(Open.java);②開機(jī)動(dòng)畫結(jié)束后將會(huì)出現(xiàn)主界面(IndeActivity.java);③用戶點(diǎn)擊游戲幫助時(shí),會(huì)顯示幫助界面(GameHelp.java);④用戶點(diǎn)擊關(guān)于游戲時(shí),會(huì)顯示關(guān)于界面(AboutActivity.java);⑤用戶點(diǎn)擊開始游戲時(shí),會(huì)進(jìn)入游戲界面(GameView.java),同時(shí)會(huì)啟動(dòng)卡片類(Card.java)負(fù)責(zé)游戲中卡片數(shù)字和樣式的實(shí)現(xiàn)。

4 游戲運(yùn)行效果與測試

4.1 歡迎界面

歡迎界面主要實(shí)現(xiàn)的是開機(jī)動(dòng)畫以及菜單項(xiàng)的功能。開機(jī)動(dòng)畫利用圖片漸變效果實(shí)現(xiàn)。在主界面實(shí)現(xiàn)游戲的功能選擇,主界面有四個(gè)按鈕,點(diǎn)擊相應(yīng)按鈕實(shí)現(xiàn)相應(yīng)功能。歡迎界面效果圖如圖3所示。

4.2 運(yùn)行界面

運(yùn)行界面實(shí)現(xiàn)游戲運(yùn)行、分?jǐn)?shù)界面展示的功能。運(yùn)行界面主要包含游戲區(qū)域、分?jǐn)?shù)區(qū)域、功能區(qū)域三個(gè)部分。游戲區(qū)域?qū)崿F(xiàn)游戲功能,分?jǐn)?shù)區(qū)域顯示當(dāng)前分?jǐn)?shù)和最高分?jǐn)?shù),功能區(qū)域只有一個(gè)按鍵,就是重新開始,在游戲進(jìn)行中,可以隨時(shí)點(diǎn)擊該按鍵重新開始游戲。

4.3 游戲測試

把開發(fā)好的2048手機(jī)游戲App的APK安裝包下載到Android手機(jī),并安裝、運(yùn)行,實(shí)際運(yùn)行效果如圖4、圖5和圖6所示。

5 結(jié)束語

2048手機(jī)游戲App采用Java作為開發(fā)語言、Android Studio作為開發(fā)平臺(tái),以面向?qū)ο蟮木幊趟枷隱8]進(jìn)行設(shè)計(jì)開發(fā)。App在Android手機(jī)上的測試運(yùn)行結(jié)果表明,2048游戲App達(dá)到了設(shè)計(jì)要求,可以滿足人們在休閑放松的同時(shí)達(dá)到鍛煉思維能力的目的。該App可以放到軟件應(yīng)用商店或市場,向人們提供免費(fèi)下載,滿足人們的游戲需求。未來,需要改進(jìn)的地方在于,開發(fā)兩人對戰(zhàn)版或多人對戰(zhàn)版的2048游戲App,進(jìn)一步提高游戲的趣味性。

參考文獻(xiàn)(References):

[1] 鄧文淵.Android開發(fā)基礎(chǔ)教程[M].人民郵電出版社,2014.

[2] 張玉清,王凱,楊歡等.Android安全綜述[J].計(jì)算機(jī)研究與發(fā)展,2014.51(7):1385-1396

[3] 徐誠等.零點(diǎn)起飛學(xué)Android開發(fā)[M].清華大學(xué)出版社,2013.

[4] 劉劍卓.Android手機(jī)游戲開發(fā)從入門到精通[M].中國鐵道出版社,2012.

[5] 倪紅軍.基于Android平臺(tái)的消息推送研究與實(shí)現(xiàn)[J].實(shí)驗(yàn)室研究與探索,2014.33(5):96-100

[6] 張思陽,黃同成.基于Android的自助游APP的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2017.1:95-97

[7] 李華明.Android游戲編程之從零開始[M].清華大學(xué)出版社,2011.

[8] 倪紅軍,張學(xué)成.基于Android的移動(dòng)學(xué)習(xí)評(píng)價(jià)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2016.26(8):109-112

猜你喜歡
動(dòng)畫界面區(qū)域
做個(gè)動(dòng)畫給你看
動(dòng)畫發(fā)展史
國企黨委前置研究的“四個(gè)界面”
我的動(dòng)畫夢
文苑(2019年22期)2019-12-07 05:28:56
基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
人機(jī)交互界面發(fā)展趨勢研究
我是動(dòng)畫迷
關(guān)于四色猜想
分區(qū)域
手機(jī)界面中圖形符號(hào)的發(fā)展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
主站蜘蛛池模板: 成人福利在线观看| 九九热视频在线免费观看| 色综合色国产热无码一| 91麻豆精品视频| 欧美 亚洲 日韩 国产| 丰满人妻久久中文字幕| 欧美一级一级做性视频| 亚洲va欧美va国产综合下载| 国产欧美在线观看精品一区污| 国产成人亚洲无码淙合青草| 国产微拍一区| 在线视频亚洲色图| 亚洲一区二区视频在线观看| 日韩美毛片| 亚洲精品无码AV电影在线播放| 欧美国产在线看| 国产va在线观看免费| 2020久久国产综合精品swag| 欧美亚洲激情| 国产精品久久久久久久伊一| 国产精品太粉嫩高中在线观看| 日本三级欧美三级| 国产亚洲精品在天天在线麻豆| 91福利在线观看视频| 日韩 欧美 国产 精品 综合| 国产香蕉一区二区在线网站| 大陆精大陆国产国语精品1024| 日本三级精品| 91美女在线| 欧美成在线视频| 亚洲人成在线精品| 久久精品亚洲中文字幕乱码| 国产精品人人做人人爽人人添| 国产99精品久久| 日日拍夜夜操| 深夜福利视频一区二区| 亚洲黄色视频在线观看一区| 99视频在线看| 日本AⅤ精品一区二区三区日| 免费jizz在线播放| 国产在线精品99一区不卡| 午夜国产在线观看| 国产va在线观看| 国产精品成人一区二区| 亚洲欧美日韩色图| 第一区免费在线观看| 日本三级欧美三级| 中文无码日韩精品| 乱系列中文字幕在线视频| 日韩无码视频专区| 精品人妻无码中字系列| 67194在线午夜亚洲| 97国产精品视频自在拍| 91 九色视频丝袜| 国产91丝袜在线播放动漫| 99精品在线视频观看| 国产精品无码久久久久AV| 国产成a人片在线播放| 日韩欧美综合在线制服| 国产精品xxx| 一本大道香蕉中文日本不卡高清二区| 亚洲色欲色欲www网| 91麻豆精品视频| 国产自产视频一区二区三区| 国产婬乱a一级毛片多女| 99国产在线视频| 一级香蕉视频在线观看| 久久这里只有精品国产99| 国产69精品久久久久孕妇大杂乱 | 国产精品七七在线播放| 婷婷综合缴情亚洲五月伊| 国产精品视频观看裸模| 日本一区高清| 亚洲va视频| 黄色网址手机国内免费在线观看| 天堂亚洲网| 国产在线视频二区| 91无码人妻精品一区二区蜜桃| 91精品综合| 亚洲日产2021三区在线| 色妞www精品视频一级下载| 波多野结衣一区二区三视频|