亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一款基于Android 平臺益智游戲的設(shè)計與實(shí)現(xiàn)

        2016-03-07 12:54:14趙宏
        電腦知識與技術(shù) 2015年34期
        關(guān)鍵詞:手勢卡片界面

        趙宏

        摘要:近幾年,隨著Android手機(jī)及其相關(guān)設(shè)備的迅速普及,針對Android平臺游戲的開發(fā)需求日益增多?!?048游戲”是一款益智類游戲,老少皆宜。該文設(shè)計并實(shí)現(xiàn)了基于Android平臺的2048游戲,最后在手機(jī)上測試運(yùn)行,結(jié)果十分流暢。

        關(guān)鍵詞:Android平臺;益智類游戲;2048游戲

        中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)34-0102-02

        隨著移動通信技術(shù)的迅速發(fā)展,人們對移動設(shè)備需求的不斷變化,移動設(shè)備的智能化程度也在不斷提高。Android平臺作為三大移動平臺之一,用戶數(shù)量也在不斷增長。同時,人們不再滿足于傳統(tǒng)的桌面游戲,移動游戲具有隨時、隨地和隨身等特點(diǎn),不斷受到用戶的青睞。因此,移動游戲相對于傳統(tǒng)游戲所占的市場份額也在日益擴(kuò)大。本文設(shè)計和實(shí)現(xiàn)了一種基于Android平臺的2048益智游戲。

        1 研究內(nèi)容

        數(shù)字游戲2048,初始數(shù)字則是由2+2組成的基數(shù)4。在操作方面,與其他一些數(shù)字游戲相比有所不同,表現(xiàn)為由一步一格的移動,變成更為爽快的一次到底。相同數(shù)字的卡片在靠攏、相撞時會相加。系統(tǒng)給予的數(shù)字方塊不是2就是4,用戶要想辦法在這16格范圍中湊出“2048”這個數(shù)字方塊就算成功。

        本游戲是在Android應(yīng)用平臺上開發(fā)的,使用的開發(fā)語言為:Java語言,開發(fā)工具為Eclipse,并包含ADT等插件。

        2 系統(tǒng)設(shè)計

        在對游戲進(jìn)行詳細(xì)需求分析的基礎(chǔ)上,確定了系統(tǒng)的功能和性能要求,對游戲的主界面、屏幕繪制、布局設(shè)計、合并算法、游戲分?jǐn)?shù)及最高分的統(tǒng)計進(jìn)行了詳細(xì)設(shè)計。游戲單項(xiàng)功能的實(shí)現(xiàn):開始游戲、屏幕繪制、滑動合并、重新開始游戲、統(tǒng)計得分和最高分等功能。然后自定義游戲視圖,且能夠根據(jù)控制器提供的布局?jǐn)?shù)據(jù)來顯示數(shù)字卡片方格,并提供選中合并、疊加和統(tǒng)計分?jǐn)?shù)等功能。

        當(dāng)用戶點(diǎn)擊開始游戲后,用戶可以上下左右滑動卡片,與此同時游戲也開始統(tǒng)計得分,隨著游戲得分越來越高,界面中空格卡片的剩余量也越來越少,用戶也可以退出游戲或重新開始游戲。系統(tǒng)流程圖如圖1。

        在游戲的過程中,當(dāng)用戶滑動卡片2,與卡片2相碰疊加,就會成為卡片4,與此類推,當(dāng)卡片1024與卡片1024疊加成卡片2048,則證明游戲闖關(guān)成功。

        3 算法設(shè)計

        當(dāng)用戶進(jìn)入游戲界面,開始游戲時,首先系統(tǒng)會默認(rèn)自動生成兩張數(shù)字卡片,可以任意滑動。整個游戲涉及到核心算法主要有:手勢判斷,移動卡片,判斷游戲結(jié)束。

        3.1 手勢判斷

        手勢的判斷與識別,是手機(jī)游戲的關(guān)鍵所在,也是手機(jī)游戲體驗(yàn)好壞的重要因素之一。在本游戲中,手勢判斷方法,記錄手勢在x軸上的距離,與y軸的距離大小,并做出相應(yīng)的判斷。比如手勢在x軸距離大于+5單位,則向表示右移;小于-5單位,則向左移。以此類推,判斷手勢在y軸的移動。

        private float startX, startY, offsetX, offsetY;

        @Override

        public boolean onTouch(View v, MotionEvent event) {

        switch (event.getAction()) {

        case MotionEvent.ACTION_DOWN:

        startX = event.getX();

        startY = event.getY();

        break;

        case MotionEvent.ACTION_UP:

        offsetX = event.getX() - startX;

        offsetY = event.getY() - startY;

        //記錄手勢在x軸與y軸的距離大小

        if (Math.abs(offsetX) > Math.abs(offsetY)) {

        if (offsetX < -5) {

        //手勢在x軸距離小于-5則向左移swipeLeft();

        } else if (offsetX > 5) { //手勢在x軸距離大于+5則向右移 swipeRight(); }

        } else {

        if (offsetY < -5) {

        //手勢在y軸距離小于-5則向上移swipeUp();

        } else if (offsetY > 5) {

        //手勢在y軸距離大于+5則向下移swipeDown(); } }

        break; }

        return true; }

        3.2 移動卡片

        關(guān)于卡片移動的方法,分成兩種情況來處理,一種是沒有能合并但有能夠移動的,就移動到相應(yīng)的位置。第二種,能夠合并的,合并到相應(yīng)的位置再移動。

        private void swipeLeft() {

        boolean merge = false;

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

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

        for (int x1 = x + 1; x1 < LINES; x1++) {

        // 移動不能合并的卡片位置

        if (cardsMap[x1][y].getNum() > 0) {

        if (cardsMap[x][y].getNum() <= 0) { cardsMap[x][y].setNum(cardsMap[x1][y].getNum()); cardsMap[x1][y].setNum(0);

        x--;

        merge = true; }

        // 判斷是否還有能夠合并的卡片

        else if (cardsMap[x][y].equals(cardsMap[x1][y])) {

        cardsMap[x][y].setNum(cardsMap[x][y].getNum() *2);

        cardsMap[x1][y].setNum(0);

        score.addScore(cardsMap[x][y].getNum());

        merge = true; }

        break; } } }

        }

        if (merge) {

        addRandomNum();

        checkComplete();

        }

        3.3 判斷游戲結(jié)束

        怎么判斷游戲是否結(jié)束呢?我們要看是否所有磚塊填滿,還要看相鄰卡片的數(shù)字是否相同,是否還有能夠合并的了。

        4 功能實(shí)現(xiàn)

        為了實(shí)現(xiàn)游戲的具體功能,思路如下:用戶進(jìn)入歡迎界面后,提示點(diǎn)擊屏幕,進(jìn)入游戲頁面,然后實(shí)現(xiàn)游戲的全部功能,如圖2和圖3。具體描述如下:

        1)游戲的基本功能。首先,要游戲能夠正常啟動運(yùn)行。在游戲開始階段,用戶應(yīng)該對卡片的方向有一個基本判斷(如上、下、左、右),因?yàn)橛脩暨x擇不同的方向,最后得分是不同的。另外,在游戲過程中可以使用道具,也可以選擇重新開始游戲。

        2)游戲模式選擇。所謂游戲模式選擇,也就是當(dāng)用戶在游戲過程中遇到困難,不能再進(jìn)行下一步的時候,可以選擇使用道具,使其可以繼續(xù)進(jìn)行游戲。模式有兩種,間隔行和間隔列:所謂間隔行和間隔列,也就是在游戲的主畫面中,可以將間隔的行和列中的數(shù)字卡片合并且數(shù)字疊加,組成新的數(shù)字卡片。

        3)游戲得分統(tǒng)計。當(dāng)用戶進(jìn)入游戲界面,開始游戲的時候,系統(tǒng)便開始進(jìn)行得分的統(tǒng)計,用戶也可以通過得分,以此來激發(fā)用戶的玩游戲的欲望,使其自己的得分變得更高。最后還有一個最高分統(tǒng)計,這個將會存儲在用戶的手機(jī)文件里,用作歷史記錄最高得分,增加用戶的挑戰(zhàn)性,同時也增加了游戲本身的趣味性。

        5 結(jié)束與展望

        本游戲的設(shè)計經(jīng)過Android平臺的模擬器測試,成功運(yùn)行。同時,也經(jīng)過幾臺手機(jī)的測試,運(yùn)行十分流暢。今后,將繼續(xù)優(yōu)化游戲界面,增加功能,使游戲的趣味性和可玩性進(jìn)一步得到提高。

        參考文獻(xiàn):

        [1] 代亮, 林峰. 基于Android移動平臺數(shù)獨(dú)游戲的設(shè)計與實(shí)現(xiàn)[J]. 電腦知識與技術(shù), 2013(5).

        [2] 俞琳琳. 基于Starling的捕魚游戲的設(shè)計與開發(fā)[J]. 軟件工程師, 2014(12).

        [3] 李剛. 瘋狂Android講義[M]. 北京:電子工業(yè)出版社, 2013.

        [4] 郭少豪. Android 3D游戲開發(fā)與應(yīng)用案例詳解[M]. 北京: 中國鐵道出版社, 2012.

        [5] 楊長剛. 深入剖析Android系統(tǒng)[M]. 北京: 電子工業(yè)出版社, 2013.

        猜你喜歡
        手勢卡片界面
        擺卡片
        倒過來的卡片
        國企黨委前置研究的“四個界面”
        挑戰(zhàn)!神秘手勢
        V字手勢的由來
        一張卡片
        基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
        勝利的手勢
        人機(jī)交互界面發(fā)展趨勢研究
        卡片
        精品三级久久久久久久电影| 国产suv精品一区二区四| 精品无码国产一区二区三区av| 一本色综合亚洲精品蜜桃冫| 成人国产精品高清在线观看| 日本一区二区三区女优在线| 久久久久亚洲av成人片| 最近日本中文字幕免费完整 | 日韩高清无码中文字幕综合一二三区 | 男女性行为免费视频网站| 日本午夜一区二区视频| 久久精品国产亚洲av高清三区| 欧美牲交a欧美牲交aⅴ免费真| 自拍偷自拍亚洲精品播放| 亚洲av永久久无久之码精| 国产乱精品女同自线免费| 亚洲国产av精品一区二区蜜芽| 在线视频你懂的国产福利| 中文字幕人妻一区色偷久久| 91精品国产九色综合久久香蕉| 亚洲 欧美 国产 制服 动漫| 国产精品揄拍100视频| 亚洲成人av一区二区麻豆蜜桃| 性感女教师在线免费观看| 久久精品免费一区二区三区| 亚洲阿v天堂网2021| 亚洲女人天堂成人av在线| 无码中文字幕人妻在线一区| 亚洲av最新在线网址| 亚洲午夜精品久久久久久人妖| 国产亚洲一区二区三区成人| 中文字幕日韩有码在线| 欧美性猛交xxxx乱大交3| 日本a在线播放| 高清国产国产精品三级国产av| 国内女人喷潮完整视频| 日韩国产一区| 人妻中文字幕一区二区三区| 天天摸天天做天天爽水多| 少妇内射视频播放舔大片 | а天堂8中文最新版在线官网|