版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 基于安卓的“經(jīng)營冷飲店”游戲設(shè)計(jì)</p><p><b> 摘 要</b></p><p> 隨著社會(huì)與科技的發(fā)展,人們?cè)絹碓阶⒅匾苿?dòng)、便攜與方便。而隨著這股潮流的發(fā)展,手機(jī)應(yīng)用游戲應(yīng)運(yùn)而生。安卓系統(tǒng)作為一個(gè)市場占有超過50%的手機(jī)平臺(tái),其應(yīng)用游戲的發(fā)展非常迅猛。</p><p> 本論文提出一款基于安卓系統(tǒng)的
2、“經(jīng)營冷飲店”游戲設(shè)計(jì),并對(duì)其具體開發(fā)與實(shí)現(xiàn)進(jìn)行了剖析。在游戲制作過程中,實(shí)現(xiàn)了用戶與手機(jī)之間的良好的人機(jī)交互,使用戶更好的參與到游戲中去。</p><p> 此款游戲?yàn)槟M經(jīng)營類游戲,其內(nèi)容主要包含“游戲開始”,“選擇游戲難度”,“玩家進(jìn)貨、定價(jià)”,“游戲主畫面”,“游戲結(jié)束”這5個(gè)模塊。主要介紹了每個(gè)模塊的功能,設(shè)計(jì)方法。模塊和模塊之間的邏輯結(jié)構(gòu)和數(shù)據(jù)處理。</p><p> 本論
3、文主要對(duì)此款游戲的總體設(shè)計(jì),需求分析和內(nèi)部數(shù)據(jù)的具體處理和計(jì)算進(jìn)行了詳細(xì)的闡述。并對(duì)游戲的具體設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行了簡要的說明。在一定安卓理論的基礎(chǔ)上,介紹了部分關(guān)鍵代碼與關(guān)鍵函數(shù)的應(yīng)用。對(duì)游戲中應(yīng)用到的相關(guān)計(jì)算機(jī)圖形學(xué)實(shí)現(xiàn)應(yīng)用動(dòng)畫的過程做了具體介紹。</p><p> 最后展示成果截圖并對(duì)其進(jìn)行簡單介紹,然后論文進(jìn)行整體總結(jié)與歸納。</p><p> 關(guān)鍵詞:游戲;安卓;人機(jī)交互 <
4、/p><p> The Subject of Undergraduate Graduation Project (Thesis) of DLNU</p><p><b> Abstract</b></p><p> With the development of society and technology , growing emphasi
5、s has been on mobil , portable and convenient.With this trend , mobil application game come into being.Android System as a market share over 50% of the mobile phone system,the application of Android has been developed ve
6、ry rapid.</p><p> This paper presents an Android game called “The Cold Drink shop” and its specific development and realization are explained. The game is good human-computer interaction and the users will
7、be better involved in the game.</p><p> This game is business simulation game, its topics include “the start of the game”, “select the game difficulty”, “player purchase and pricing”, “the main game screen”
8、, “the end game” of these five modules. It is introduction the function of each module, the design method and logical structure and data processing modules and between modules.</p><p> This thesis focuses o
9、n the overall design of this game, needs analysis, and internal data processing and calculation in detail. And game specific design and implementation of a brief description. On the basis of the theory of Android, it is
10、introduction of the application of the keys code and functions. Specific introduction to the computer graphics applications animation process applied to the game.</p><p> Finally show the results and be a b
11、rief introduction, and then the paper overall summary and summarized.</p><p> Key Words:Game;Android;Human-computer interaction</p><p><b> 目 錄</b></p><p><b>
12、 摘 要I</b></p><p> AbstractII</p><p><b> 1 前言1</b></p><p> 1.1 游戲的目的與意義1</p><p> 1.2 Android游戲的發(fā)展趨勢(shì)1</p><p> 1.3 系統(tǒng)調(diào)研1</p
13、><p> 1.3.1社會(huì)可行性分析1</p><p> 1.3.2技術(shù)可行性分析2</p><p> 1.3.3經(jīng)濟(jì)可行性分析2</p><p> 2 Android開發(fā)工具及系統(tǒng)特點(diǎn)3</p><p><b> 2.1開發(fā)工具3</b></p><p>
14、<b> 2.2系統(tǒng)特點(diǎn)3</b></p><p><b> 3游戲總體設(shè)計(jì)5</b></p><p> 3.1游戲模塊劃分5</p><p> 3.2游戲設(shè)計(jì)邏輯6</p><p> 3.2.1天氣影響因素6</p><p> 3.2.2聲譽(yù)影響因素
15、6</p><p><b> 4 游戲設(shè)計(jì)8</b></p><p> 4.1游戲需求分析8</p><p> 4.1.1對(duì)功能的規(guī)定8</p><p> 4.1.2對(duì)性能的規(guī)定8</p><p> 4.2游戲數(shù)據(jù)分析8</p><p> 4.2.1游
16、戲固定數(shù)據(jù)存儲(chǔ)格式8</p><p> 4.2.2玩家進(jìn)貨價(jià)格生成9</p><p> 4.2.3商品腐敗值計(jì)算方法10</p><p> 4.2.4商店聲譽(yù)計(jì)算方法10</p><p> 4.2.5顧客購買率計(jì)算方法11</p><p> 5游戲具體設(shè)計(jì)與實(shí)現(xiàn)12</p><
17、p> 5.1游戲各Activity功能12</p><p> 5.1.1開始Activity12</p><p> 5.1.2選擇Activity12</p><p> 5.1.3準(zhǔn)備Activity12</p><p> 5.1.4游戲進(jìn)行Activity13</p><p> 5.2游戲
18、中動(dòng)畫原理實(shí)現(xiàn)13</p><p> 5.2.1圖片的加載13</p><p> 5.2.2顧客的走動(dòng)和購買的實(shí)現(xiàn)13</p><p> 5.2.3下雨、下雪的背景實(shí)現(xiàn)14</p><p> 6游戲?qū)崿F(xiàn)及效果15</p><p><b> 結(jié) 論17</b></p
19、><p> 參 考 文 獻(xiàn)18</p><p><b> 致 謝19</b></p><p><b> 1 前言</b></p><p> 1.1 游戲的目的與意義</p><p> 現(xiàn)如今,電子游戲已慢慢滲透進(jìn)人們生活中,并在扮演著越來越重的角色。</
20、p><p> 可以說,隨著它的迅猛發(fā)展,現(xiàn)今的電子游戲已經(jīng)不僅僅是一種娛樂,而是形成了一種文化現(xiàn)象。</p><p> 本游戲的制作屬于電子游戲中的經(jīng)營類游戲。</p><p> 經(jīng)營類游戲即是你在虛擬世界中開一家店鋪,以把店鋪經(jīng)營好,使店鋪在金錢和等級(jí)上達(dá)標(biāo)。</p><p> 簡單的經(jīng)營類游戲可以使玩家體驗(yàn)到娛樂與消遣。但當(dāng)游戲更加靠
21、近現(xiàn)實(shí),把現(xiàn)實(shí)中開店所遇到的各種有利因素、不利因素都添加進(jìn)去之后,經(jīng)營游戲可以算是一種對(duì)現(xiàn)實(shí)的模擬。</p><p> 1.2 Android游戲的發(fā)展趨勢(shì)</p><p> 隨著社會(huì)的發(fā)展,人們的工作壓力與日俱增。與此同時(shí)相應(yīng)的減壓放松的方式也慢慢發(fā)生了變化。人們更趨于在家或者工作閑余時(shí)間以電子游戲的方式達(dá)到娛樂的目的。一次,也就意味著,電子游戲的利潤空間和發(fā)展空間是十分寬廣的。&l
22、t;/p><p> 而作為現(xiàn)代人不可或缺,隨身攜帶的手機(jī)設(shè)備,則作為一類游戲的載體,有著廣泛的發(fā)展空間。而Android作為主流智能手機(jī)系統(tǒng)之一,研究和開發(fā)相應(yīng)應(yīng)用游戲是時(shí)代發(fā)展的趨勢(shì)。</p><p> 現(xiàn)如今Android的市場份額占總體智能手機(jī)市場份額的50%以上,相對(duì)于前幾年來說,其發(fā)展勢(shì)頭勢(shì)不可擋。以至于越來越多的開發(fā)商加入了Android應(yīng)用開發(fā)的行列。在2010年,Andro
23、id市場份額僅占4.7%左右,并其市場只有不到20000個(gè)應(yīng)用程序。但在2011年初,這個(gè)數(shù)字就已經(jīng)超過了25萬字大關(guān)。而隨著越來越多的應(yīng)用的誕生,由于其的多元化和普遍性越來越高,其發(fā)展趨勢(shì)已開始漸漸逼近世界智能手機(jī)龍頭蘋果公司推出的ios系統(tǒng)。</p><p> 而在多個(gè)Android的應(yīng)用程序排行榜中,無論是按照使用量或者人氣,或者收入,70%以上的應(yīng)用排行榜榜首都是游戲??梢?,Android游戲應(yīng)用已漸漸
24、深入人心。Android手機(jī)游戲應(yīng)用開發(fā)已漸漸占據(jù)市場主流。
25、 </p><p><b> 1.3 系統(tǒng)調(diào)研</b></p><p> 1.3.1社會(huì)可行性分析</p><p> 隨著手機(jī)的發(fā)展與普及,以及互聯(lián)網(wǎng)技術(shù)的擴(kuò)展,人們對(duì)移動(dòng)通訊的需求必將需要實(shí)現(xiàn)多元功能化。通過移動(dòng)通訊連接到Internet上,實(shí)現(xiàn)數(shù)據(jù),應(yīng)用等資源共享。提高了數(shù)據(jù)的資源利用,并
26、能及時(shí)的到更新。</p><p> 在這樣的外界環(huán)境之下,手機(jī)娛樂應(yīng)用的推廣得到保證。</p><p> 1.3.2技術(shù)可行性分析</p><p> Android系統(tǒng)平臺(tái)是一個(gè)基于Linux開源的手機(jī)操作系統(tǒng)。它由Google公司在2007年11月5日正式發(fā)布的。</p><p> Android平臺(tái)是由操作系統(tǒng)、中間件、界面和應(yīng)用
27、軟件組成。是第一個(gè)要為移動(dòng)終端創(chuàng)造的一款真正開放的完整的操作系統(tǒng)。[1]</p><p> 說道Android操作系統(tǒng)平臺(tái)的優(yōu)勢(shì),不得不提到最突出的兩個(gè)特點(diǎn)“免費(fèi)”和“開源”。 </p><p> 免費(fèi):Android免費(fèi)提供其操作系統(tǒng),讓移動(dòng)過電話制造商可以免費(fèi)搭載Android操作系統(tǒng),使得手機(jī)的制作成本大大降低,漸漸使得Android普及。</p><p>
28、; 開源:Android手機(jī)制作操作系統(tǒng)代碼的開放性,不僅讓開發(fā)者可以在統(tǒng)一開放平臺(tái)進(jìn)行程序開發(fā),而且可以解決現(xiàn)今市場不同智能機(jī)之間因文件格式不同造成的信息交流不便、程序內(nèi)容無法移植等問題;并且Android的開機(jī)源碼就意味著手機(jī)使用者不必在被動(dòng)地接受移動(dòng)電話制造商默認(rèn)的設(shè)施和環(huán)境,使用者完全可以根據(jù)自己的想法自定義手機(jī)的配置。 </p><p> 1.3.3經(jīng)濟(jì)可行性分析</p><p&
29、gt; 作為現(xiàn)金炙手可熱的Android手機(jī)游戲,由于其擁有大量玩家的基礎(chǔ),因此開發(fā)商絡(luò)繹不絕,對(duì)其投資的廣告商也源源不斷。</p><p> 2 Android開發(fā)工具及系統(tǒng)特點(diǎn)</p><p><b> 2.1開發(fā)工具</b></p><p> Eclipse是一個(gè)市場占有率很高的Java IDE工具,Android推薦使用Ecli
30、pse來開發(fā)Android應(yīng)用,并為其提供了專門的插件:Android Development Tools(ADT)。</p><p><b> 2.2系統(tǒng)特點(diǎn)</b></p><p> Android的底層建立在Linux系統(tǒng)之上,它采用一種軟件疊層的方式進(jìn)行構(gòu)建。這種軟件層結(jié)構(gòu)使得層與層之間互相分離,分工明確。保證了層與層之間的低耦合,當(dāng)下層的層下或者層內(nèi)發(fā)生
31、改變時(shí),上層應(yīng)用程序無須做任何改變。([1]Android瘋狂講義)</p><p> Android系統(tǒng)主要由5部分組成:</p><p><b> 應(yīng)用程序?qū)?lt;/b></p><p><b> 應(yīng)用程序框架</b></p><p><b> 函數(shù)庫</b></
32、p><p> Android運(yùn)行時(shí)</p><p><b> Linux內(nèi)核</b></p><p><b> 圖2.1</b></p><p><b> 如圖2.1所示:</b></p><p> 應(yīng)用程序?qū)訛橄到y(tǒng)的核心應(yīng)用程序,如電子郵件客戶端
33、、地圖、瀏覽器等。這些程序主要都是Java編寫,玩家主要通過這些應(yīng)用程序來實(shí)現(xiàn)對(duì)手機(jī)的操作。</p><p> 應(yīng)用程序框架提供了大量API供開發(fā)者使用。開發(fā)者自己開發(fā)的應(yīng)用的功能模塊,主要遵守了框架的約定,那么其他應(yīng)用程序也能使用這個(gè)功能模塊。</p><p> 函數(shù)庫包含了一套被不同組件所使用的C/C++庫的集合。一般來說,Android開發(fā)者不能直接調(diào)用這套C/C++庫集,但可以
34、通過它上面的應(yīng)用程序框架來調(diào)用此庫。</p><p> Android操作系統(tǒng)運(yùn)行時(shí)由2個(gè)部分組成:Android核心庫和Dalvik虛擬機(jī)。其中Android核心庫主要為Java語言提供了大部分的功能,而虛擬機(jī)則負(fù)責(zé)運(yùn)行Android應(yīng)用程序。[2]</p><p> Linux內(nèi)核系統(tǒng)基于Linux2.6之上搭建的。在Android平臺(tái)上Linux內(nèi)核提供了安全性、內(nèi)存管理、進(jìn)程管
35、理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模型等核心系統(tǒng)服務(wù)。并且linux也是硬件層與軟件層之間的抽象層。</p><p><b> 3游戲總體設(shè)計(jì)</b></p><p><b> 3.1游戲模塊劃分</b></p><p> 本游戲主要分為4個(gè)部分:游戲開始,選擇游戲難度,玩家進(jìn)貨、定價(jià),游戲主畫面,游戲結(jié)束。</p>
36、<p> 游戲具體的流程圖如圖3.1所示: </p><p><b> 圖3.1</b></p><p> 玩家進(jìn)入游戲,首先看到開始界面,選擇開始,游戲進(jìn)入游戲天數(shù)選擇界面。游戲根據(jù)玩家選擇的天數(shù),令玩家運(yùn)行冷飲店相應(yīng)的天數(shù)。</p><p> 當(dāng)玩家選擇出游戲天數(shù)之后,進(jìn)入進(jìn)貨,定價(jià)的管理界面。在此界面玩家可以看到“冷飲
37、店”主要出售2種貨物:甜甜圈和冷飲。甜甜圈需要玩家自己定義配方和出售價(jià)格,然后選擇每種配料進(jìn)貨多少。冷飲需要玩家選擇出需要進(jìn)貨數(shù)量和確定出售價(jià)格。當(dāng)全部設(shè)置完畢,玩家選擇“開始”按鈕,進(jìn)入游戲主邏輯。</p><p> 在游戲主邏輯中,玩家可以根據(jù)購買顧客反應(yīng)情況,來調(diào)整售價(jià)。并在不需要操作的情況下,選擇加快速度,令游戲速度加快,避免不必要的時(shí)間浪費(fèi)。游戲主邏輯計(jì)算一天從早上6點(diǎn)到晚上18點(diǎn)。當(dāng)游戲進(jìn)行到18點(diǎn)
38、的時(shí)候,主邏輯畫面會(huì)自動(dòng)跳轉(zhuǎn)到游戲進(jìn)貨、定價(jià)界面中去,玩家進(jìn)行下一天的進(jìn)貨設(shè)置。</p><p> 最后,當(dāng)游戲運(yùn)行天數(shù)與玩家選擇天數(shù)相同時(shí),跳出提示框,通知玩家在固定天數(shù)內(nèi)賺的錢數(shù),并提示游戲結(jié)束,選擇是否重新開始或者退出程序。</p><p><b> 3.2游戲設(shè)計(jì)邏輯</b></p><p> “經(jīng)營冷飲店”這款游戲的主要設(shè)計(jì)邏輯
39、是基于為了更真實(shí)的模擬出在各種因素綜合作用影響的情況下,玩家是否能在時(shí)間和初始金額固定的情況下,令一家“冷飲店”得到最大的利潤。</p><p> 游戲中為了增加游戲的復(fù)雜性和難度,增加了天氣,商店聲譽(yù),玩家自定義售價(jià)和甜甜圈配料選擇等因素來影響顧客購買情況。</p><p> 3.2.1天氣影響因素</p><p> 游戲中天氣會(huì)隨機(jī)發(fā)生變化,一共有四種天氣
40、:晴天,雨天,雪天和陰天。</p><p> 顧客會(huì)隨著天氣的變化而改變購買需求。當(dāng)天氣為晴天,會(huì)有較多的顧客會(huì)購買商品,并且購買冷飲的顧客會(huì)多于購買甜甜圈的顧客。當(dāng)天氣為雨天,購買商品的顧客數(shù)量會(huì)大幅度減少,購買甜甜圈和冷飲的顧客基本比率為1:1。當(dāng)天氣為雪天或者陰天,購買商品顧客數(shù)量普通,但是雪天購買甜甜圈的顧客大幅度增多,陰天購買2種商品數(shù)量基本一致。</p><p> 每一件商
41、品都具有一定的腐敗值,這個(gè)數(shù)值顧客是看不到的,但當(dāng)商品腐敗值到達(dá)一定程度,就會(huì)提示顧客,并把這部分商品的數(shù)量從庫存里面去除。天氣情況會(huì)嚴(yán)重影響商品的腐敗值。晴天商品腐敗嚴(yán)重,當(dāng)天沒有售完的商品第二天都會(huì)腐敗;雨天和陰天商品腐敗值為晴天的一半,雪天商品腐敗值為晴天的三分之一。而當(dāng)當(dāng)天商品沒有賣完,進(jìn)入第二天銷售時(shí),則首先出售的是玩家新進(jìn)貨的商品,全部出售完畢才會(huì)出售之前沒買完的商品。</p><p> 玩家在進(jìn)貨
42、期間,物價(jià)會(huì)在一定范圍內(nèi)波動(dòng)。而這個(gè)范圍會(huì)隨著天氣的變化而改變,晴天、陰天物價(jià)普通,雨天、雪天由于交通不便,物價(jià)較高。并且隨著游戲時(shí)間的推移,物價(jià)范圍會(huì)緩慢上升。</p><p> 3.2.2聲譽(yù)影響因素</p><p> 聲譽(yù)是一家“冷飲店”是否盈利的非常重要的一個(gè)影響因素。每天“冷飲店”客流量基本相同,天氣會(huì)影響一部分顧客是否愿意購買商店內(nèi)商品。聲譽(yù)是另一個(gè)會(huì)影響顧客是否購買商品的
43、因素。</p><p> 當(dāng)商店聲譽(yù)分為6個(gè)階段,10%以下、10%到20%、20%到40%、40%到60%、60%到80%與80%以上。每個(gè)階段顧客購買率都不一樣,例如:晴天,商店聲譽(yù)10%,那么將有10%*(1+10%)的顧客會(huì)購買商品。</p><p> 由此可見,商店聲譽(yù)的重要性。而決定商店聲譽(yù)主要為顧客購買商品前和購買商品后是否滿意。</p><p>
44、 每個(gè)顧客購買商品之前會(huì)判斷商品價(jià)格是否合理,如果商品價(jià)格過高,則顧客會(huì)覺得太貴不予購買,并且對(duì)“冷飲店”的聲譽(yù)會(huì)有一定的負(fù)面影響。</p><p> 當(dāng)顧客購買完商品,會(huì)根據(jù)商品的質(zhì)量與價(jià)格評(píng)判。如果商品質(zhì)量差和價(jià)格也較高,則對(duì)“冷飲店”聲譽(yù)影響不好。如果商品的質(zhì)量與價(jià)格都是一般,可以接受,則商店聲譽(yù)不受。如果商品性價(jià)比較高時(shí),“冷飲店”的聲譽(yù)則會(huì)有正面的影響。</p><p>&l
45、t;b> 4 游戲設(shè)計(jì)</b></p><p><b> 4.1游戲需求分析</b></p><p> 4.1.1對(duì)功能的規(guī)定</p><p> 本游戲做開發(fā)的是基于Android的“經(jīng)營冷飲店”游戲軟件,主要實(shí)現(xiàn)玩家可以在自己選定的時(shí)間內(nèi),經(jīng)營一家“冷飲店”,并獲得自己的最終利潤。</p><p&
46、gt; “經(jīng)營冷飲店”這款游戲需要實(shí)現(xiàn)主要功能如下:</p><p><b> 游戲框架設(shè)計(jì);</b></p><p> 游戲中各個(gè)Activity之間實(shí)現(xiàn)數(shù)據(jù)傳輸;</p><p><b> 顧客類的設(shè)計(jì)與實(shí)現(xiàn)</b></p><p> 甜甜圈類的設(shè)計(jì)與實(shí)現(xiàn)</p><
47、;p><b> 背景類的設(shè)計(jì)與實(shí)現(xiàn)</b></p><p><b> 冷飲類的設(shè)計(jì)與實(shí)現(xiàn)</b></p><p><b> 游戲主邏輯的實(shí)現(xiàn)</b></p><p><b> 天氣類的設(shè)計(jì)與實(shí)現(xiàn)</b></p><p> 游戲的開始和退出功
48、能實(shí)現(xiàn)</p><p> 4.1.2對(duì)性能的規(guī)定</p><p> 本游戲在設(shè)計(jì)上本著方便、使用及娛樂性高的宗旨,在對(duì)界面進(jìn)行設(shè)計(jì)過程中,始終堅(jiān)持清晰明了,在性能方面能夠?qū)崿F(xiàn)效率高,不易出錯(cuò)的有點(diǎn)。</p><p> 由于是手機(jī)游戲,對(duì)游戲的性能要求更加嚴(yán)格,內(nèi)存的占有量也必須有一定的限制。</p><p> 游戲的主界面應(yīng)該力求美觀
49、,賞心悅目。游戲觸摸控制模塊應(yīng)做到易懂、易操作,準(zhǔn)確率高,不易出錯(cuò)。</p><p><b> 4.2游戲數(shù)據(jù)分析</b></p><p> 4.2.1游戲固定數(shù)據(jù)存儲(chǔ)格式</p><p> 由于本游戲程序中需要存儲(chǔ)的數(shù)據(jù)量較小,所以本游戲中數(shù)據(jù)通過Android中的SharedPreferences來存儲(chǔ)。</p><
50、;p> SharedPreferences主要通過key-value來保存數(shù)據(jù)。SharedPreferences的數(shù)據(jù)總是保存在/data/data<package name>shared_prefs目錄下面。 SharedPreferences總是以XML格式保存。</p><p> XML格式文件是一個(gè)只有一個(gè)根節(jié)點(diǎn)的樹狀存儲(chǔ)格式的文件。相對(duì)于對(duì)一般文件的查找,XML的查找速度顯然更快
51、。</p><p> 表4.1為游戲中SharedPreferences中數(shù)據(jù)key-value的值:</p><p> 表4.1 key-value對(duì)照表</p><p> 表4.1中(1)處玩家選擇天數(shù)初值需要在玩家選擇時(shí)賦值;(2)中天氣的初值是游戲每次隨機(jī)產(chǎn)生的。</p><p> 4.2.2玩家進(jìn)貨價(jià)格生成</p>
52、;<p> 在玩家進(jìn)貨、定價(jià)管理界面,系統(tǒng)會(huì)隨機(jī)產(chǎn)生不同商品的當(dāng)前進(jìn)貨物價(jià),每種商品物價(jià)范圍基本一致,其前三天價(jià)格初始化都是1到6之間,但隨著時(shí)間的推移,物價(jià)的波動(dòng)會(huì)略微上調(diào)。 </p><p><b> 其計(jì)算方法如下:</b></p><p> 首先生成一個(gè)1—6的隨機(jī)價(jià)格money,判斷天數(shù)如果是3天后,那么</p><p
53、> money = money + money * ( nowDays / Days ) (4.1)</p><p> 其中,nowDays為當(dāng)前天數(shù),Days為玩家選擇的總天數(shù)。</p><p> 4.2.3商品腐敗值計(jì)算方法</p><p> 商品的腐敗值,每隔一天計(jì)算一次,封裝在donuts類和soft_drink類里
54、。每過一天,商品腐敗值會(huì)根據(jù)前一天天氣狀況來進(jìn)行計(jì)算。</p><p> 如果前一天天氣是晴天,則腐敗值donut_decay或者drink_decay增加100。</p><p> 如果前一天天氣下雨或者陰天,則腐敗值donut_decay或者drink_decay增加50。</p><p> 如果前一天天氣為雪天,則腐敗值donut_decay或者drin
55、k_decay增加30。</p><p> 而當(dāng)腐敗值大于等于100的商品,則從庫存里面刪除。</p><p> 4.2.4商店聲譽(yù)計(jì)算方法</p><p> 影響商店聲譽(yù)的主要是商品價(jià)格,當(dāng)商品為甜甜圈的時(shí)候,商品配料也同樣影響商品的聲譽(yù)。</p><p> 在生成顧客Person類的初始化中,每個(gè)顧客類都會(huì)根據(jù)當(dāng)天天氣狀況,隨機(jī)生
56、成需要購買的商品。之后,隨機(jī)生成最優(yōu)商品價(jià)格和可以忍受的最貴商品價(jià)格。如果商品時(shí)甜甜圈,則還需要隨機(jī)生成最優(yōu)配料數(shù)和可以忍受的最低配料數(shù)。</p><p> 在這里,配料數(shù)是指玩家在開始售貨之前設(shè)定的食譜中糖、面粉和配料數(shù)的總和。</p><p> 隨機(jī)生成的商品最優(yōu)價(jià)格和可以忍受的最貴商品價(jià)格是在一定范圍內(nèi)生成的,而這個(gè)范圍是根據(jù)當(dāng)前第幾天來設(shè)定的。</p><p
57、> 各種數(shù)據(jù)生成的計(jì)算公式如下:</p><p> 首先隨機(jī)生成數(shù)n,數(shù)n的范圍在8—15之間。</p><p> 其次,計(jì)算商品配料數(shù)m:</p><p> m = sugar + flour + other (4.2)</p><p> 公式(4.2)中sugar代表食譜中的糖,f
58、lour代表食譜中的面粉,other代表食譜中的配料。</p><p> ?。?)飲料的最優(yōu)價(jià)格計(jì)算公式:</p><p> drinkminMoney = n + n * ( nowDays / Days ) (4.3)</p><p> ?。?)飲料的可以忍受最貴價(jià)格計(jì)算公式:</p><p> drin
59、kmaxMoney = drinkminMoney * 1.5 (4.4)</p><p> ?。?)甜甜圈最優(yōu)價(jià)格計(jì)算公式:</p><p> donutminMoney = n * m + n * ( nowDays / Days ) (4.5) </p><p> 公式(4.5)中,因?yàn)樘鹛鹑κ?/p>
60、3種材料綜合生成,所以計(jì)算價(jià)格需要n*m。</p><p> ?。?)甜甜圈可以忍受最貴價(jià)格計(jì)算公式:</p><p> donutmaxMoney = donutminMoney * 1.5 (4.6)</p><p> 規(guī)定生成甜甜圈最佳配料數(shù)為13—25,生成甜甜圈最低配料數(shù)為5—12之間。</p><
61、;p> 則當(dāng)此顧客準(zhǔn)備購買飲料時(shí),需要先判斷用戶定價(jià)是否低于顧客預(yù)期可忍受的最貴價(jià)格。如果價(jià)格不能忍受,則商店聲譽(yù)度reputation = reputation – 1,并且顧客放棄購買此商品。若低于顧客預(yù)期可忍受的最貴價(jià)格,則判斷是否低于或等于顧客預(yù)期的最優(yōu)價(jià)格,如果低于或等于最優(yōu)價(jià)格,則reputation = reputation + 1。</p><p> 若顧客購買甜甜圈,則分5中情況討論:
62、</p><p> 難吃:商品價(jià)格在顧客預(yù)期最優(yōu)價(jià)格之內(nèi),但是甜甜圈配料數(shù)低于最低配料數(shù)。此時(shí),聲譽(yù)減1。</p><p> 生氣:商品價(jià)格在顧客可以忍受價(jià)格之間,并且甜甜圈配料數(shù)低于最低配料數(shù),此時(shí)聲譽(yù)減2。</p><p> 太貴:顧客購買前,判斷商品在其預(yù)期價(jià)格可以忍受價(jià)格之上,則顧客放棄購買,聲譽(yù)減1。</p><p> 高興
63、:商品價(jià)格在顧客預(yù)期最優(yōu)價(jià)格之內(nèi),并且商品配料在顧客預(yù)期最佳配料之上,則商店聲譽(yù)加1。</p><p> 普通:不屬于以上情況的即普通,商店聲譽(yù)不改變。</p><p> 4.2.5顧客購買率計(jì)算方法</p><p> 顧客購買率主要根據(jù)商店聲譽(yù)來計(jì)算的。每天生成的顧客數(shù)量基本一致,約為360人左右。</p><p> 聲譽(yù)最大值為1
64、00,最小值為0。</p><p> 當(dāng)聲譽(yù)小于10時(shí),10%的顧客會(huì)購買商品。</p><p> 當(dāng)聲譽(yù)大于等于10小于20時(shí),20%的顧客會(huì)購買商品。</p><p> 當(dāng)聲譽(yù)大于等于20小于40時(shí),30%的顧客會(huì)購買商品。</p><p> 當(dāng)聲譽(yù)大于等于40小于60時(shí),40%的顧客會(huì)購買商品。</p><p
65、> 當(dāng)聲譽(yù)大于等于60小于80時(shí),50%的顧客會(huì)購買商品。</p><p> 當(dāng)聲譽(yù)大于等于80時(shí),60%的顧客會(huì)購買商品。</p><p> 5游戲具體設(shè)計(jì)與實(shí)現(xiàn)</p><p> 5.1游戲各Activity功能</p><p> Android應(yīng)用最重要、最常見的組成單元為Activity。Activity對(duì)于Andro
66、id相當(dāng)于Servlet對(duì)于Web應(yīng)用的作用。</p><p> Activity可以看做一個(gè)畫面,當(dāng)建立一個(gè)新的Activity的時(shí)候,其實(shí)相當(dāng)于建立一個(gè)全新的畫面,這個(gè)畫面有自己的生存周期,統(tǒng)一由ActivityManager進(jìn)行管理。</p><p> Activity的管理方式類似于棧,最先啟動(dòng)的Activity最后關(guān)閉,最后啟動(dòng)的Activity最先關(guān)閉。</p>
67、<p> 5.1.1開始Activity</p><p> 開始Activity類名為Start_Activity,其布局在布局文件中加載,有一個(gè)按鈕,點(diǎn)擊進(jìn)入新Activity——選擇Activity。</p><p> 在開始Activity中,背景音樂開啟,一直持續(xù)到游戲結(jié)束。音樂大小用戶可以用手機(jī)自帶的音量調(diào)節(jié)鍵調(diào)節(jié)。</p><p>
68、 5.1.2選擇Activity</p><p> 選擇Activity類名為Choose_Activity,由布局文件夾Layout下布局的xml文件進(jìn)行布局。主要功能為用戶選擇開店游戲天數(shù)。</p><p> SharedPreferences也在此Activity中進(jìn)行初始化,并存儲(chǔ)在其中數(shù)據(jù)也在此處進(jìn)行初始化。</p><p> 5.1.3準(zhǔn)備Acti
69、vity</p><p> 準(zhǔn)備Activity的類名為preActivity,此類主要是用戶進(jìn)貨、定價(jià)操作界面。本類中也使用布局文件夾Layout下布局的xml文件進(jìn)行布局。在類里添加監(jiān)聽器和處理。</p><p> 此類運(yùn)用Android中TabHost進(jìn)行分頁設(shè)置,把一個(gè)Activity分成兩部分。一部分為甜甜圈,一部分為冷飲。</p><p> 在甜甜
70、圈和冷飲部分上方都可看到當(dāng)前資本與游戲當(dāng)天天數(shù)和開業(yè)后天氣情況。</p><p> 用戶可以選擇需要進(jìn)貨的商品,選擇完畢之后選擇開業(yè)按鈕即可。如果選擇錯(cuò)誤想要重新選擇,則可以點(diǎn)擊重置按鈕,則游戲會(huì)重置到之前沒有選擇時(shí)的狀態(tài)。</p><p> 甜甜圈和冷飲部分?jǐn)?shù)據(jù)分別為甜甜圈類Donuts和冷飲類Soft_drink分類暫存數(shù)據(jù)。當(dāng)用戶選擇“開業(yè)”按鈕時(shí),則之前用戶選擇的數(shù)據(jù)會(huì)提交到S
71、haredPreferences的存儲(chǔ)文件中去,使得數(shù)據(jù)不會(huì)丟失。</p><p> 5.1.4游戲進(jìn)行Activity</p><p> 游戲進(jìn)行Activity的類名為GamingActivity,此類可以說是整個(gè)游戲的最重要部分。此Activity主要加載了一個(gè)SurfaceView的類。整個(gè)繪畫背景,天氣,顧客購買的動(dòng)畫和部分用戶操作都封裝在繼承了SurfaceView的Gam
72、ingSurfaceView中。</p><p> SurfaceView是Android中View類的子類。View是一個(gè)超類,幾乎包含了所有屏幕類型。每個(gè)View類都有一個(gè)繪畫的畫布。SurfaceView主要用于刷新較頻繁的動(dòng)畫、游戲繪圖。它是一個(gè)新起的單獨(dú)線程,而View則必須在UI主線程中更新畫面。</p><p> 在GamingSurfaceView中,首先建立一個(gè)線程,
73、以定時(shí)刷新畫面。在刷新過程中,每次調(diào)用Draw方法和logic方法。在Draw方法中處理畫圖,從背景開、建筑物、商店到顧客購買,時(shí)間等。</p><p> 顧客和背景的畫圖是把畫筆和畫筆當(dāng)做參數(shù)傳到Person類和Background類中,在這兩個(gè)類中分別都設(shè)置draw方法和logic方法,這樣使得畫圖的分工更加明確,邏輯性更強(qiáng)。</p><p> 在這個(gè)類中,用戶主要會(huì)觀察顧客購買情
74、況,為了增加用戶的互動(dòng)性,用戶可以隨時(shí)調(diào)整甜甜圈和飲料的出售價(jià)格。同時(shí)用戶可以點(diǎn)擊調(diào)整速度按鈕,控制游戲速度的快慢,以便于觀察游戲中顧客的購買情況或者免于浪費(fèi)更多的時(shí)間。</p><p> 5.2游戲中動(dòng)畫原理實(shí)現(xiàn)</p><p> 5.2.1圖片的加載</p><p> Android中位圖的渲染和操作主要是基于Bitmap的圖形類來進(jìn)行。Android支持
75、的圖片格式有png、jpg、bmp等。</p><p> 其中尤以png格式 的圖片更加方便,可以通過修改圖片調(diào)整圖片的透明度。</p><p> Android的圖片加載主要通過畫布類Canvas來進(jìn)行的。Canvas有一系列的方法可以進(jìn)行繪制圖片。</p><p> 本游戲中圖片都是通過Canvas.drawBitmap()方法進(jìn)行繪制的。</p&g
76、t;<p> 當(dāng)圖片過大或者過小時(shí),Canvas提供了一個(gè)縮放位圖的函數(shù),對(duì)指定大小的矩形在畫布指定位置上進(jìn)行縮放。但在操作前后需要加入save()和restore()兩個(gè)方法。分別用于保存當(dāng)前畫布狀態(tài)和恢復(fù)上次保存畫布的狀態(tài)。</p><p> 5.2.2顧客的走動(dòng)和購買的實(shí)現(xiàn)</p><p> 顧客走動(dòng)圖片,是一張包含顧客向右走動(dòng)的所有動(dòng)作幀,每幀的大小相同,顧客不
77、同動(dòng)作之間間距相同,且除了顧客本身以外,其他部分都為透明的png格式圖片。</p><p> 該圖片如圖5.1所示:</p><p><b> 圖5.1</b></p><p> 首先參數(shù)m_walkCurrentFrame記錄顧客當(dāng)前走路是哪一幀,順序應(yīng)該為0、1、2、1、0、2、1、0、2……。</p><p>
78、; 然后獲得圖片的寬width,則小人其中一幀的寬即為framew = width / 3。</p><p> 再用Canvas方法scale()函數(shù)修改顧客的大小,并用Canvas方法clipRect()設(shè)置一個(gè)寬高跟小人相同大小的可視區(qū)域。畫圖的時(shí)候按照設(shè)置的可視區(qū)域畫,則顧客的另外2幀的圖片部分就被屏蔽了。</p><p> 然后用drawBitmap方法進(jìn)行繪制,其中注意,要
79、根據(jù)當(dāng)前m_walkCurrentFrame是多少來繪制。</p><p> 例如當(dāng)m_walkCurrentFrame為1的時(shí)候,即要顯示中間那幀。不能直接使用需要顯示圖片的x,y坐標(biāo),要使中間的圖片的左上角坐標(biāo)為x,y。則要從x- framew,y處開始繪制。</p><p> 這樣由于之前已經(jīng)剪切了一個(gè)可視區(qū)域,則圖片橫坐標(biāo)x- framew到x處圖片是看不到的,x+framew
80、到x+framew*2是看不到的。</p><p> 同理,顧客購買物品的時(shí)候也是使用了一個(gè)包含顧客購買動(dòng)作的5幀動(dòng)作幀圖片。在此不再介紹。</p><p> 5.2.3下雨、下雪的背景實(shí)現(xiàn)</p><p> 下雨背景的實(shí)現(xiàn),相當(dāng)于滾動(dòng)背景的實(shí)現(xiàn)。模擬雨水的圖片為一張png的用白色畫筆畫出長短不一線段,其他地方都是透明的圖片。</p><p
81、> 然后生成2個(gè)Bitmap對(duì)象,圖片都加載雨水的圖片。</p><p> 第一張圖片隨著時(shí)間推移向下移動(dòng)5個(gè)單位,第二張圖片在屏幕正上方緊接著第一張,每次也移動(dòng)5個(gè)單位。當(dāng)任意一張圖片移動(dòng)到屏幕之外,把該張圖片位置放到屏幕正上方,繼續(xù)向下移動(dòng)5個(gè)單位。</p><p> 下雪背景的與下雨背景的實(shí)現(xiàn)基本相同,僅僅是圖片不同,在此不作具體描述。</p><p&
82、gt;<b> 6游戲?qū)崿F(xiàn)及效果</b></p><p> 如圖6.1為游戲開始界面,點(diǎn)擊圖中“開始游戲按鈕”進(jìn)入選擇游戲天數(shù)界面。</p><p><b> 圖6.1</b></p><p> 如圖6.2所示為用戶選擇天氣界面,其中有5個(gè)選項(xiàng)可供選擇,用戶可按照自己意愿選擇游戲天數(shù)。</p><
83、;p> 點(diǎn)擊按鈕后進(jìn)入游戲準(zhǔn)備界面。</p><p><b> 圖6.2</b></p><p> 如圖6.3與圖6.4所示,在游戲準(zhǔn)備界面中,用戶可以選擇冷飲或者甜甜圈選項(xiàng)卡。在甜甜圈和冷飲選項(xiàng)卡中,用戶可以根據(jù)第二天天氣情況決定進(jìn)貨數(shù)量和食譜。</p><p> 想要增加數(shù)量,點(diǎn)擊“+”按鈕即可。</p><
84、;p> 如果用戶想要重新選擇,則選擇“重置”按鈕,則可恢復(fù)當(dāng)前界面中的選擇到原始狀態(tài)。</p><p> 最后點(diǎn)擊“開業(yè)”按鈕,進(jìn)入游戲主邏輯畫面。</p><p><b> 圖6.3</b></p><p><b> 圖6.4</b></p><p> 如圖6.5所示,為游戲主邏輯
85、畫面</p><p><b> 圖6.5</b></p><p><b> 結(jié) 論</b></p><p> 經(jīng)過幾個(gè)月時(shí)間終于完成了Android系統(tǒng)的“經(jīng)營冷飲店”游戲的設(shè)計(jì)與實(shí)現(xiàn)。經(jīng)過多次測(cè)試,運(yùn)行效果良好,基本能滿足用戶聊天和休閑娛樂的需求。</p><p> 在設(shè)計(jì)與實(shí)現(xiàn)此款
86、游戲過程中,設(shè)計(jì)游戲內(nèi)容,熟悉Android平臺(tái)開發(fā)令我話費(fèi)較多時(shí)間和精力。</p><p> 在開始編碼程序前期,設(shè)計(jì)整體游戲框架結(jié)構(gòu),給每個(gè)模塊明確分工,以面向?qū)ο蟮乃枷敕治龊徒鉀Q問題的過程令我的編程思想有了較大的提升。</p><p> 在編碼程序中期,根據(jù)所準(zhǔn)備的需求進(jìn)行具體編寫代碼和功能實(shí)現(xiàn)。遇到了較多的問題。例如Dialog的監(jiān)聽包和view的監(jiān)聽包不能同時(shí)導(dǎo)入,只能導(dǎo)入其
87、中一個(gè),那么在這個(gè)Activity里面需要同時(shí)監(jiān)聽這兩種不同組件的解決方法;由于Activity是棧式管理,先打開的Activity最后關(guān)閉,那么如果在任意一個(gè)Activity中隨意的關(guān)閉整個(gè)程序等等。手機(jī)內(nèi)存空間有限,這就要求程序員進(jìn)行優(yōu)化處理自身程序,在構(gòu)建顧客對(duì)象過程中,每天一般需要刷新360個(gè)顧客對(duì)象。如果在初期直接創(chuàng)建360個(gè)對(duì)象,用戶等待時(shí)間會(huì)相當(dāng)長,并且非常耗費(fèi)內(nèi)存資源。一般手機(jī)負(fù)荷不了。因此,在創(chuàng)建顧客對(duì)象時(shí),分別創(chuàng)建了
88、2組對(duì)象,每組10人,當(dāng)?shù)谝唤M最后一個(gè)顧客從左側(cè)走入屏幕后,第二組緊接著第一組最后一名顧客向右走。當(dāng)?shù)谝唤M最后一名從屏幕右側(cè)走出屏幕,重新初始化第一組對(duì)象數(shù)據(jù),等待第二組最后一名對(duì)象從左走入屏幕,第一組第一名緊跟著第二組最后一名走入屏幕。</p><p> 在編碼后期,主要工作為測(cè)試,修改簡單的bug和調(diào)整游戲中數(shù)據(jù)的不平衡。使游戲不會(huì)太簡單又或者太難。</p><p> 在游戲設(shè)計(jì)過
89、程中,用戶的交互體驗(yàn),視覺效果都是游戲中的重中之重。游戲中數(shù)據(jù)邏輯的設(shè)計(jì)難易程度也是一款游戲的關(guān)鍵之處。經(jīng)過多次測(cè)試,本款A(yù)ndroid平臺(tái)下的“經(jīng)營冷飲店”游戲基本能夠滿足用戶的休閑娛樂需求。</p><p><b> 參 考 文 獻(xiàn)</b></p><p> [1] 李華明.Android游戲編程之從零開始.北京:清華大學(xué)出版社,2011.</p>
90、<p> [2] 李剛.瘋狂Android講義.北京:電子工業(yè)出版社,2011</p><p> [3] 楊豐盛.Android技術(shù)內(nèi)幕:系統(tǒng)卷.北京:機(jī)械工業(yè)出版社,2011 </p><p> [4] 梅爾(Reto Meier)、 王超. Android 2高級(jí)編程(第2版).北京:清華大學(xué)出版社</p><p> [5] 王克宏 著.J
91、ava 技術(shù)教程(基礎(chǔ)篇) .北京:高等教育出版社,2002.04</p><p> [6] 鄧凡平. 深入理解Android(卷1).北京:機(jī)械工業(yè)出版社</p><p> [7] 李佐彬等. Android開發(fā)入門與實(shí)戰(zhàn)體驗(yàn).北京:機(jī)械工業(yè)出版社</p><p> [8] 韓超、梁泉. Android系統(tǒng)原理及開發(fā)要點(diǎn)詳解.北京:電子工業(yè)出版社</p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 安卓游戲畢業(yè)設(shè)計(jì)--基于安卓的“經(jīng)營冷飲店”游戲設(shè)計(jì)
- 安卓畢業(yè)設(shè)計(jì)論文
- 畢業(yè)論文——基于安卓坦克大戰(zhàn)游戲
- 基于安卓坦克大戰(zhàn)游戲畢業(yè)論文.doc
- 畢業(yè)論文--基于安卓系統(tǒng)的拼圖游戲設(shè)計(jì)
- 基于安卓的手機(jī)游戲開發(fā)畢業(yè)論文
- 畢業(yè)設(shè)計(jì)論文 基于安卓系統(tǒng)的個(gè)人理財(cái)系統(tǒng)
- 安卓課程設(shè)計(jì)(臺(tái)球游戲)
- 安卓 游戲植入廣告
- 畢業(yè)設(shè)計(jì)(論文)基于安卓手機(jī)藍(lán)牙控制的智能小車設(shè)計(jì)
- 安卓軟件開發(fā)--畢業(yè)設(shè)計(jì)開題報(bào)告安卓軟件文獻(xiàn)翻譯(精)
- 游戲畢業(yè)設(shè)計(jì)論文
- 安卓版連連看畢業(yè)設(shè)計(jì)報(bào)告
- 基于安卓系統(tǒng)的考勤系統(tǒng)畢業(yè)設(shè)計(jì)
- 安卓經(jīng)典游戲推薦2
- 游戲畢業(yè)設(shè)計(jì)論文
- 本科畢業(yè)論文基于安卓系統(tǒng)的拼圖游戲的設(shè)計(jì)與開發(fā)
- 畢業(yè)設(shè)計(jì)論文 - 蔣卓凡.pdf
- 畢業(yè)設(shè)計(jì)--安卓電子菜單點(diǎn)菜系統(tǒng)
- 掃雷游戲畢業(yè)設(shè)計(jì)論文
評(píng)論
0/150
提交評(píng)論