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

        ?

        游戲《史萊姆大冒險(xiǎn)》的設(shè)計(jì)與開(kāi)發(fā)

        2017-04-06 14:06:42劉子澍王語(yǔ)杰楊永輝邱呂揚(yáng)
        中國(guó)科技縱橫 2016年23期
        關(guān)鍵詞:安卓策略

        劉子澍++王語(yǔ)杰++楊永輝++邱呂揚(yáng)++楊金馨

        【摘 要】本款游戲?qū)儆谝嬷穷?lèi)游戲,玩家需要在一共20層的地圖中進(jìn)行冒險(xiǎn)。玩家在每層都會(huì)遇到強(qiáng)度各異的怪物和用于強(qiáng)化玩家屬性的道具、商店。游戲中,玩家需要謹(jǐn)慎考慮對(duì)戰(zhàn)的怪物和屬性加點(diǎn)路線,稍有錯(cuò)誤玩家可能要付出較大的代價(jià)繼續(xù)游戲甚至卡關(guān)。本游戲流程條理清晰,界面制作獨(dú)具一格,可以滿(mǎn)足絕大多數(shù)喜愛(ài)該類(lèi)型游戲的玩家的需求。

        【關(guān)鍵詞】魔塔 策略 安卓

        1 背景

        隨著智能移動(dòng)終端的普及,作為移動(dòng)應(yīng)用重要分支的手游產(chǎn)業(yè)全面進(jìn)入井噴期。中國(guó)已經(jīng)成為亞洲乃至全球移動(dòng)游戲市場(chǎng)規(guī)模最大、增速最快的市場(chǎng)。在這樣的市場(chǎng)環(huán)境下我們的游戲有這很好的發(fā)展前景[1]。

        《魔塔》作為一款受到廣大玩家喜愛(ài)的flash小游戲,至今仍有大量同人作品出現(xiàn)。然而,絕大多數(shù)作品都是在電腦上用flash運(yùn)行的,手機(jī)平臺(tái)上的作品并不多見(jiàn)。為了滿(mǎn)足玩家能夠利用碎片化的時(shí)間進(jìn)行游戲,同時(shí)不必使用相對(duì)笨重的臺(tái)式機(jī)或筆記本,我們開(kāi)發(fā)了這款魔塔風(fēng)格的游戲。

        2 實(shí)現(xiàn)方法

        2.1 總體設(shè)計(jì)思路

        魔塔作為一個(gè)策略性極其優(yōu)秀的游戲,如今被人所遺忘讓我們覺(jué)得十分惋惜,于是我們決定以此為藍(lán)本,制作一款風(fēng)格接近魔塔的游戲,并功能和玩法以及劇情上進(jìn)行自己的創(chuàng)新,去引更多的用戶(hù)參與到這類(lèi)游戲中來(lái)。

        2.2 處理流程

        游戲流程如下圖1所示,后面的解說(shuō)按圖中的內(nèi)容進(jìn)行。

        開(kāi)始:進(jìn)入游戲開(kāi)始界面,點(diǎn)擊開(kāi)始游戲播放游戲背景故事,播放完畢或者手動(dòng)跳過(guò)之后進(jìn)入下一環(huán)節(jié)。

        玩家、地圖初始化:進(jìn)入游戲主程序,初始化玩家屬性值、道具數(shù)量、金錢(qián)數(shù),設(shè)定地圖信息為第一層地圖。顯示游戲界面,游戲開(kāi)始。

        游戲循環(huán):玩家進(jìn)行游戲的部分,游戲只有當(dāng)玩家救出公主后才算結(jié)束。程序會(huì)判斷玩家移動(dòng)方向上下一格的地圖信息。當(dāng)玩家遭遇敵人時(shí),系統(tǒng)會(huì)計(jì)算玩家受到的傷害,如果高于玩家現(xiàn)有生命值,怪物將留在原地,玩家不會(huì)死亡,但無(wú)法通過(guò)怪物所占的格子;反之,怪物會(huì)從地圖上消失,玩家可以通過(guò)剛才怪物所占的格子,玩家的生命值會(huì)減少同時(shí)獲得金錢(qián)獎(jiǎng)勵(lì)。當(dāng)玩家遇到道具(包括商店)或門(mén)時(shí),玩家會(huì)與之互動(dòng)購(gòu)買(mǎi)或者拾取道具,打開(kāi)門(mén)。

        2.3 開(kāi)發(fā)環(huán)境

        由于我們的程序以Android開(kāi)發(fā)為主,所以經(jīng)過(guò)討論我們決定在使用比較廣泛的Windows系統(tǒng)下配置Android開(kāi)發(fā)環(huán)境,其中使用了JDK(Java SE Development Kit)、Android SDK(Android Software Development Kit)和IntelliJ IDEA集成開(kāi)發(fā)環(huán)境,編程語(yǔ)言為JAVA[2]。同時(shí),為簡(jiǎn)化游戲數(shù)據(jù)平衡計(jì)算和使游戲數(shù)據(jù)更為科學(xué),我們使用Microsoft Visual Studio 2015集成開(kāi)發(fā)環(huán)境開(kāi)發(fā)了一個(gè)C++程序[3]。

        2.4 程序結(jié)構(gòu)

        我們的程序主要由一系列類(lèi)、布局文件和資源文件構(gòu)成。其中類(lèi)又分為游戲邏輯類(lèi)、人物類(lèi)、背景音樂(lè)類(lèi)、自定義控件類(lèi)等等,其中,每一個(gè)類(lèi)Activity類(lèi)都有與之對(duì)應(yīng)的布局文件[4]。如圖2所示。

        首先,MenuActivity作為游戲入口進(jìn)入游戲。在現(xiàn)狀版本中,這個(gè)類(lèi)雖然只實(shí)現(xiàn)了簡(jiǎn)單的開(kāi)始游戲Button和第二段背景音樂(lè)的播放與停止,但是這個(gè)類(lèi)又是不可或缺的,因?yàn)樵诮酉聛?lái)的開(kāi)發(fā)中我們還會(huì)增加登錄注冊(cè)、游戲設(shè)置等功能,需要在這個(gè)類(lèi)中實(shí)現(xiàn)跳轉(zhuǎn)。

        其次,CartoonActivity進(jìn)行劇情文字逐字播放,通過(guò)一個(gè)定時(shí)器不斷調(diào)用TextView的setText達(dá)到逐字顯示的效果[5],并且在文字顯示完全后自動(dòng)跳轉(zhuǎn)至下一個(gè)界面,玩家也可以點(diǎn)擊skip按鈕跳過(guò)劇情介紹。

        再者,GameActivity實(shí)現(xiàn)游戲的主要邏輯,(從人物怪物地圖的初始化,到游戲控制,的大概思路)在這個(gè)Activity中初始化了全部道具和敵人的屬性,以及商店和NPC的觸發(fā)事件,調(diào)用了mapview和player類(lèi)來(lái)初始化地圖和角色,定義了角色上下左右的各個(gè)事件來(lái)實(shí)現(xiàn)人物控制邏輯,初始化了搖桿,在子線程run中監(jiān)聽(tīng)了搖桿的動(dòng)作,以此判斷人物執(zhí)行的動(dòng)作,戰(zhàn)斗部分則是調(diào)用了combat類(lèi)來(lái)進(jìn)行計(jì)算。

        最后,以EndActivity作為游戲的結(jié)束,EndActivity基本與CartoonActivity相同,主要區(qū)別在文字顯示上。

        3 關(guān)鍵技術(shù)

        3.1 文字逐字顯示

        為了實(shí)現(xiàn)文字逐字顯示的效果,通過(guò)一個(gè)定時(shí)器不斷調(diào)用TextView的setText,每次setText將會(huì)多一個(gè)文字,一次來(lái)達(dá)到逐字顯示的效果,并且在背景介紹部分用計(jì)時(shí)器實(shí)現(xiàn)了文字顯示完全之后自動(dòng)跳轉(zhuǎn)至游戲地圖的功能。

        3.2 搖桿

        為增加游戲體驗(yàn),使玩家操作更多元化,所以我們將一開(kāi)始使用的按鈕式操作升級(jí)為現(xiàn)在較為流行的搖桿操作。為此,我們引入了自定義的XML屬性,通過(guò)繼承View類(lèi),自定義了測(cè)量和繪制兩個(gè)部分,除此之外我們還需要重寫(xiě)onTouchEvent()方法進(jìn)行View事件處理,最后,在主線中開(kāi)啟一個(gè)子線程對(duì)自定義的搖桿類(lèi)進(jìn)行監(jiān)聽(tīng),從而實(shí)現(xiàn)對(duì)史萊姆的控制。

        3.3 數(shù)據(jù)平衡

        數(shù)據(jù)設(shè)計(jì)具體方案:

        無(wú)疑,直接設(shè)置一些倍數(shù)或者具體數(shù)值都十分困難——因?yàn)槿鄙僖粋€(gè)標(biāo)準(zhǔn)來(lái)衡量這些數(shù)值是否合適。所以考慮引入一個(gè)怪物強(qiáng)度(G)當(dāng)做一個(gè)衡量標(biāo)準(zhǔn),即在怪物的攻擊力(A)、防御力(D)、生命值(H)與怪物強(qiáng)度之間建立一種函數(shù)關(guān)系:G=f(A,D,H)。

        然而怪物的三個(gè)屬性不能直接用來(lái)計(jì)算怪物的強(qiáng)度:一個(gè)怪物可能有非常高的血量,但無(wú)法對(duì)玩家造成任何傷害,這個(gè)怪物不能算強(qiáng);同樣有的怪物的血量并不高,但由于其具有較高的攻擊力和防御力,足以對(duì)玩家造成巨大的威脅。這么看來(lái),攻擊力、防御力、生命值在對(duì)怪物強(qiáng)度的定義中應(yīng)占有不同的權(quán)重,而且生命值所占權(quán)重要相對(duì)偏低。出于這方面的考慮,重新定義怪物強(qiáng)度的表達(dá)式:G=g(f(A,D,H)),其中f(A,D,H)=0.7A+0.6D+0.3H。這個(gè)公式只是一個(gè)嘗試,并沒(méi)能找到數(shù)學(xué)方法證明該公式是最佳的。

        在確定了f(A,D,H)后,就需要確定g。由于數(shù)學(xué)知識(shí)有限,g便在初等函數(shù)的范圍內(nèi)尋找。首先確定怪物強(qiáng)度一定是一個(gè)單調(diào)不減的函數(shù),但是怪物強(qiáng)度不應(yīng)增長(zhǎng)過(guò)快,以免強(qiáng)度相差不多而屬性值卻天差地別的情況出現(xiàn);同時(shí)也不應(yīng)該增長(zhǎng)過(guò)緩,導(dǎo)致屬性值已經(jīng)差距很多而強(qiáng)度值卻十分接近,這樣強(qiáng)度值就失去了衡量的意義。在幾類(lèi)基本初等函數(shù)中,對(duì)數(shù)函數(shù)可能出現(xiàn)負(fù)值,指數(shù)函數(shù)增長(zhǎng)速度過(guò)快,三角函數(shù)又呈現(xiàn)出周期性,都不太適合作為g。剩下的冪函數(shù)中,冪指數(shù)大于1時(shí)增長(zhǎng)速度過(guò)快,所以選擇冪指數(shù)小于1的冪函數(shù)作為g。看過(guò)一些函數(shù)圖像之后,選擇y=x^(2/3)這個(gè)函數(shù),增長(zhǎng)速度合適。根據(jù)這些函數(shù),怪物強(qiáng)度的表達(dá)式最后被定義為:G=[(0.7A+0.6D+0.3H)]^(2/3)。這樣就可以根據(jù)給定的怪物強(qiáng)度計(jì)算出怪物的攻擊力、防御力、生命值。

        接下來(lái)的問(wèn)題就是如何解出這個(gè)三元一次方程。先將方程變形:

        (1)不難看出等式的左邊是一個(gè)常數(shù)。但由于方程只有一個(gè),也就是說(shuō)接下來(lái)的工作是解出這個(gè)不定方程。

        容易看出該方程有無(wú)窮多個(gè)解,但必須求出某個(gè)特定的解,所以根據(jù)線性代數(shù)的相關(guān)知識(shí),把上面的方程寫(xiě)成兩個(gè)矩陣相乘的形式。

        (2)其中,由于矩陣[0.7 0.6 0.3]的逆矩陣不存在或者沒(méi)意義,無(wú)法通過(guò)線性代數(shù)中求逆矩陣的方法對(duì)該方程進(jìn)行求解,所以通過(guò)求廣義逆矩陣的方法求解該方程。

        將上述方程寫(xiě)成Ax=b的形式,其中A=[0.7 0.6 0.3],x=[A D H]T,b=[a]那么方程的通解可以表示為(I為三維單位矩陣,y為任意三維列向量)。

        (3)由于矩陣A是行滿(mǎn)秩矩陣,A的廣義逆矩陣A^-就可以通過(guò)下式求得。

        (4)最后只要給定一個(gè)向量y就可以得出矩陣x,即所求的A、D、H倍數(shù)。

        只要確定了攻擊力、防御力、生命值各自的初始值,就可以乘上計(jì)算好的倍數(shù)得出具體的數(shù)值。

        4 現(xiàn)版本中的問(wèn)題

        由于游戲測(cè)試人員不夠多,數(shù)據(jù)平衡性上可能還需要進(jìn)行微調(diào),目前來(lái)看難度偏高。

        遙感靈敏性和范圍判定不太完善,在玩家操作過(guò)快時(shí)可能出現(xiàn)重復(fù)操作。

        5 結(jié)語(yǔ)

        本文首先介紹了在智能終端普及且安卓操作系統(tǒng)為主流系統(tǒng)的大背景下,手游產(chǎn)業(yè)全面進(jìn)入井噴期。而魔塔類(lèi)游戲在該平臺(tái)上數(shù)量極少,但是卻擁有廣大的玩家基數(shù)以及良好的策略性,受到廣大90后玩家的喜愛(ài)。本游戲是基于安卓平臺(tái)開(kāi)發(fā)的軟件,能夠滿(mǎn)足玩家隨時(shí)隨地進(jìn)行該類(lèi)型游戲的需求。本游戲流程條例清晰,界面制作獨(dú)具一格,可以滿(mǎn)足絕大多數(shù)喜愛(ài)該類(lèi)型游戲的玩家的需求。

        參考文獻(xiàn):

        [1]吳亞峰,蘇亞光,于復(fù)興.Android應(yīng)用案例開(kāi)發(fā)大全第3版[M].人民郵電出版社,2015:45-50.

        [2]任玉剛.Android開(kāi)發(fā)藝術(shù)探索 第1版[M].電子工業(yè)出版社,2015:32-40.

        [3][美]James S Cho著;李強(qiáng).譯. Android游戲開(kāi)發(fā)詳解 第1版[M].人民郵電出版社,2015:60-70.

        [4][美]策希納(Mario Zechner),[美]格林(Robert Green) 著;趙凱,佘建偉.譯. Android 4游戲入門(mén)經(jīng)典 第3版[M].清華大學(xué)出版社 ,2013:60-80.

        猜你喜歡
        安卓策略
        iPhone不卡的秘密曝光:安卓也能享受
        基于“選—練—評(píng)”一體化的二輪復(fù)習(xí)策略
        MIPS安卓平臺(tái)上ARM二進(jìn)制翻譯系統(tǒng)
        求初相φ的常見(jiàn)策略
        例談未知角三角函數(shù)值的求解策略
        我說(shuō)你做講策略
        文物表情包
        高中數(shù)學(xué)復(fù)習(xí)的具體策略
        一種基于安卓系統(tǒng)的手機(jī)側(cè)抓包分析方法
        Passage Four
        猫咪www免费人成网最新网站| 精品国产av一区二区三区四区| 白丝爆浆18禁一区二区三区| 国产精品久久久久久无码| 国产精品18久久久久网站| 日日麻批视频免费播放器| 青青草国产在线视频自拍| 国产办公室沙发系列高清| 9999毛片免费看| 狠狠躁夜夜躁无码中文字幕| 日韩av中出在线免费播放网站| 自拍情爱视频在线观看| 中文字幕亚洲无线码在线一区| 亚洲国产精品一区二区www| 亚洲av乱码中文一区二区三区| 人妻少妇精品一区二区三区| 青青草绿色华人播放在线视频| 亚洲黄色天堂网站在线观看禁18| 男女车车的车车网站w98免费| 中文字幕 人妻熟女| 久久久亚洲欧洲日产国码是AV| 日韩一区二区三区熟女| 国产内射爽爽大片视频社区在线| 亚洲精品无码久久久久av麻豆| 久久中文字幕日韩无码视频| 亚洲精品中文字幕一二三 | 国产嫖妓一区二区三区无码| 亚洲国产精品综合久久20| 无人视频在线播放免费| 大地资源中文第3页| 成人免费xxxxx在线视频| 天堂av中文在线官网| 欧美精品色婷婷五月综合| 亚洲av无码一区二区三区四区| 成人精品国产亚洲欧洲| 精品一区二区三区久久| 蜜臀色欲av在线播放国产日韩| 精品国产香蕉伊思人在线又爽又黄| 精品国产福利一区二区三区| 亚洲日本人妻少妇中文字幕| 少妇私密会所按摩到高潮呻吟|