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