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
主站蜘蛛池模板: 国产精品成人一区二区不卡 | 午夜国产精品视频黄| 国产成人综合日韩精品无码不卡| 欧美日韩专区| 午夜爽爽视频| 中文一区二区视频| 丰满少妇αⅴ无码区| 热99精品视频| 日韩毛片免费视频| 亚洲成人www| 日本高清免费不卡视频| 色呦呦手机在线精品| 精品亚洲国产成人AV| 亚洲日本在线免费观看| 国产视频大全| 思思热精品在线8| 亚洲成A人V欧美综合| 色妞www精品视频一级下载| 成年人视频一区二区| 人妻无码中文字幕一区二区三区| 亚洲国产中文在线二区三区免| 国产日韩精品一区在线不卡| 五月天综合网亚洲综合天堂网| 刘亦菲一区二区在线观看| 日本欧美成人免费| 国产午夜精品一区二区三区软件| 2022国产91精品久久久久久| 亚洲男人的天堂在线观看| 精品国产免费观看| 亚洲成人网在线观看| 亚洲综合在线网| 99精品视频在线观看免费播放| 国产高清在线观看91精品| 在线无码九区| 伊人色天堂| 成年女人a毛片免费视频| 高潮爽到爆的喷水女主播视频 | 亚洲欧洲日产国产无码AV| 区国产精品搜索视频| 尤物亚洲最大AV无码网站| 欧美成人精品一级在线观看| 香港一级毛片免费看| 欧美午夜理伦三级在线观看| 99热这里只有精品久久免费 | 亚洲欧美一区二区三区蜜芽| 国产成人区在线观看视频| 91在线高清视频| 亚洲永久免费网站| 日韩色图区| 国产视频大全| 久久semm亚洲国产| 久久精品丝袜高跟鞋| a国产精品| 又猛又黄又爽无遮挡的视频网站| 欧美日韩午夜| 精品国产自在在线在线观看| 在线观看国产黄色| 激情综合五月网| 又猛又黄又爽无遮挡的视频网站| 国产无人区一区二区三区| 九色国产在线| 在线观看精品自拍视频| 69视频国产| 欧美日韩在线成人| 亚洲天堂色色人体| 最新国产在线| 国产手机在线小视频免费观看| 91在线激情在线观看| 亚洲成人免费看| 色综合天天操| 欧美成人综合视频| 国产精品视频系列专区| 国产成人成人一区二区| 国产网站黄| 8090成人午夜精品| 精品一区二区三区四区五区| 精品国产免费人成在线观看| 亚洲日韩精品无码专区| 久久免费成人| 免费国产高清视频| 欧美另类第一页| 免费全部高H视频无码无遮掩|