安卓版連連看畢業(yè)設(shè)計(jì)報(bào)告_第1頁
安卓版連連看畢業(yè)設(shè)計(jì)報(bào)告_第2頁
安卓版連連看畢業(yè)設(shè)計(jì)報(bào)告_第3頁
安卓版連連看畢業(yè)設(shè)計(jì)報(bào)告_第4頁
安卓版連連看畢業(yè)設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、題目:安卓版水果連連看系名:計(jì)算機(jī)科學(xué)與技術(shù)系專業(yè):軟件工程學(xué)號:07學(xué)生姓名:賀曉林指導(dǎo)教師:李白2012 年 12 月 19 日1 課題概述課題意義目前隨著移動設(shè)備越來越普及以及移動設(shè)備的硬件的提升, 移動設(shè)備的功能越來越完善, 移動設(shè)備的系統(tǒng)平臺也日漸火熱起來。 目前國內(nèi)最常見的移動開發(fā)平臺有Symbian, iPhone , Windows Phone以及當(dāng)下正在逐步興起的 Android。目前為止國內(nèi)已經(jīng)有很多 Android 系統(tǒng)的用戶。截止2010 年第二季度Android系統(tǒng)的國內(nèi)市場占有率已經(jīng)過10%,在西歐以及北美智能手機(jī)市場占有率也在20%左右??梢夾ndroid 系統(tǒng)正

2、在崛起之中。但是對于 Android 系統(tǒng)的應(yīng)用和開發(fā)在國內(nèi)仍然屬于起步和探索階段。急需要大量的相關(guān)技術(shù)和人員的投入。下面首先介紹一下Android 系統(tǒng)。 Android 是基于 Linux 內(nèi)核的軟件平臺和操作系統(tǒng),是Google 在 2007年 11 月 5 日公布的手機(jī)系統(tǒng)平臺,早期由 Google開發(fā), 后由 ( OpenHandset Alliance ) 開發(fā)。 它采用了軟件堆層( Software stack ,又名以軟件疊層)的架構(gòu),主要分為三部分。低層以 Linux 核心工作為基礎(chǔ),只提供基本功能;其他的應(yīng)用軟件則由各公司自行開發(fā),以 Java 作為編寫程式的一部分。安卓版

3、水果連連看是一款比較常見的安卓版游戲。 游戲主要功能是點(diǎn)擊倆個相同的水果, 如果中間可以通過小于等于三條直線連接, 就可以將倆個水果消除掉。 游戲不同操作具有不的背景音樂。 還有道具。 刷新順序和提示道具分別三次。游戲設(shè)置不同的關(guān)卡, 通過時間的不同來控制。 通過該課題, 使學(xué)生更了解安卓游戲項(xiàng)目的開發(fā)。課題目標(biāo)隨著3G應(yīng)用的不斷開發(fā)推廣,用戶會越來越需要更加個性化、優(yōu)質(zhì)化的多媒體數(shù)據(jù)服務(wù), 用戶希望能夠隨時、 隨地?zé)o縫利用3G 網(wǎng)絡(luò)進(jìn)行辦公、網(wǎng)上交易、游戲娛樂、欣賞影視節(jié)目、收聽和下載音樂等。根據(jù)觀察,在不久的將來,移動手機(jī)終端將會在以下若干方面具有新的發(fā)展。首先, 提供智能提醒服務(wù), 手機(jī)

4、能夠與用戶實(shí)現(xiàn)密切配合, 并監(jiān)控用戶的個性化設(shè)置(保持在本地或者云端),當(dāng)重要時間點(diǎn)或關(guān)鍵事物需要用戶注意時,手機(jī)會向用戶發(fā)出“提醒”服務(wù),服務(wù)包括日程提醒、交通狀況、 最佳行車路線、最佳泊位、優(yōu)惠活動、實(shí)時新聞、體育賽事、天氣情況、股市行情、好友活動、親友生日等。其次, 提供虛擬現(xiàn)實(shí)體驗(yàn), 手機(jī)可以借助傳感器、 周邊設(shè)備了解到您的身邊環(huán)境, 并根據(jù)收集到的信息, 智能的為您提供有用的信息, 如在網(wǎng)絡(luò)世界養(yǎng)的寵物, 可以借助音頻設(shè)備表達(dá)叫聲, 借助馬達(dá)和位置傳感器等傳遞其跳、 躍等行為 信息;也可以在用戶購物時,提供相關(guān)的同類產(chǎn)品價格參考,提醒用戶附近的那 個賣場更物美價廉;根據(jù)實(shí)際場景,為用

5、戶及時提供正在操控的產(chǎn)品的使用方法 提醒。接著,發(fā)揮物聯(lián)網(wǎng)的優(yōu)勢,借助無處不在的傳感器,可以感知并分享到周圍 世界的海量信息,這些信息將在“云端”得到整合,幫助用戶及時、準(zhǔn)確的獲得 氣息信息、交通路況。另外借助物聯(lián)網(wǎng),用戶間可以方便、快速的分享資源,協(xié) 助和交互。如進(jìn)行端到端的多人游戲、照片分享、書籍分享、音樂分享等。然后,作為經(jīng)濟(jì)工具,在交通或者信息不發(fā)達(dá)的情況下,幫助用戶找到最佳 的市場,獲得有價值的幫助信息,幫助用戶從事的經(jīng)濟(jì)活動的收益率。最后,更加智能、安全的設(shè)備,隨著智能手機(jī)的不斷普及和更加智能,手機(jī) 軟件的更新、升級將會變得越發(fā)簡單,并會為用戶提供工具或信息,讓用戶有能 力和權(quán)力決

6、策那些內(nèi)容可以瀏覽、 下載或分享。在安全性上也將更加出色,能夠 十分有效的幫助用戶進(jìn)行獲取到的內(nèi)容的管理, 保護(hù)用戶的個人隱私和基于手機(jī) 的金融活動如電子錢包、在線支付、在線貿(mào)易等。根據(jù)近半年來的學(xué)習(xí)Android平臺游戲動畫的經(jīng)驗(yàn),結(jié)合現(xiàn)在已有技術(shù),基 于游戲動畫設(shè)計(jì)的基本原理。設(shè)計(jì)一個基于Android平臺的連連看的游戲。主要 包含游戲的關(guān)卡切換,游戲動畫的實(shí)現(xiàn)。通過這一課題的研究設(shè)計(jì)與實(shí)現(xiàn),更加理解面向?qū)ο蟮某绦蛟O(shè)計(jì)思想以及對 安卓游戲的研發(fā)框架及其實(shí)現(xiàn)。開發(fā)環(huán)境1、開發(fā)工具Eclipse 是一個市場占有率很高的 Java IDE工具,Android 推薦使用 Eclipse 來開發(fā)An

7、droid應(yīng)用,并為其提供了專門的插件: Android Development Tools (ADT。2、系統(tǒng)特點(diǎn)Android的底層建立在Linux系統(tǒng)之上,它采用一種軟件疊層的方式進(jìn)行構(gòu)建。 這種軟件層結(jié)構(gòu)使得層與層之間互相分離,分工明確。保證了層與層之間的低耦 合,當(dāng)下層的層下或者層內(nèi)發(fā)生改變時,上層應(yīng)用程序無須做任何改變。Android系統(tǒng)主要由5部分組成:應(yīng)用程序?qū)討?yīng)用程序框架函數(shù)庫Android運(yùn)行時I Surface Manager-SQLite libcCore LibrariesWebKitSSLDalvik Virtual MachineLinux內(nèi)核DispUn uxi

8、v 由核Camera DriverWifi Driver這些程序主要都是Jav,應(yīng)用程序框架提供寫一,玩家這,程邛部 中API供開發(fā)者使,開,/自發(fā)的應(yīng)用的功能模塊,主要遵守了框架函數(shù)庫包含了一套“的約定,那么其他應(yīng)用程H也能使用Yc+虎柏 I - *1- 41能模塊。集合般來說,Android開發(fā)者不能直接調(diào)用這q此庫。I程序框架來調(diào)用Android操作系統(tǒng)其中Android核心庫主r: Android 核心和Dalvik虛擬機(jī)。虛擬機(jī)則負(fù)責(zé)運(yùn)行Android應(yīng)用程序。Linux內(nèi)核系統(tǒng)基性、內(nèi)存管理、進(jìn)程管工象層內(nèi)核提供了安全。并且 linux2課題設(shè)計(jì) 連連看游戲的游戲的UI設(shè)計(jì)是幅按鈕

9、的外觀設(shè)計(jì)。通過網(wǎng)上搜索圖片開場動圓與游戲界游戲框架的搭游戲音效 模塊游戲邏輯模塊判斷疆否可首夕以方lAndroid刷新提示道具,而把野用砰制界面,游戲邏輯模塊,游戲音效模塊通過對游戲的實(shí)現(xiàn)進(jìn)行分析。對游戲中的類分析Activity 中各個控件的設(shè)計(jì)。 UI 布局的設(shè)計(jì)以及各個控件被點(diǎn)擊的動畫以及切換頁面時的動畫設(shè)計(jì)。進(jìn)行框架的搭建。主界面VIew 的設(shè)計(jì)。與Dialog 的設(shè)計(jì)。通過使用MVC勺模式搭建項(xiàng)目環(huán)境:在的包里主要是界面的類。例如 Activity 以及自定義的 Dialog 類。在的包里分別是游戲中用到的工具類。在的包里放的是游戲中自定義的 view 類以及游戲中邏輯以及對界面的

10、控制。在 res 中建立一個文件夾。 下面主要放控制的各個動作。 Animation 的動畫。主要是XML±件的一些配置。各個控件的點(diǎn)擊動作之后的動畫,以及畫面切換時 的動畫效果。在 raw 文件夾下主要放置聲音文件, 方面在游戲中用 soundpool 調(diào)用。 分別在不同的點(diǎn)擊事件發(fā)生后播放不同的聲音。I- LiaiJiankansrc13甲國空EJ com. ling, lixilirikan 曰 com. ling. liaiiliarikaTi. t 臼 com ling li&nliarikaii. v gen Generated Java FilesAndroid

11、 2 2Referenced. Librariesassetsbinlibsres&&&&& &M1XJL5lx一Kcycle, xmlEcale_aiiim. xml shake, xml trans in. xml-ii-aw it lelirawable*hdpidi-awable-ldpidrawable-mdpilayoutalarm, ogg back2new. ogg bg. Ogg choose. ogg dizappearl. &gg Iteml. ogg it&m2. ogg lose, ogg win. og

12、gLi TilianJaiLI-I src白禺由 由“一田mlsl-am甲com. 1 trig, li-anli ankanLi aiJ.i ankanA亡tivi ty. j avaJI MyDi alog. j avacom.ling.IlqiiIlankon. toolsOnStat*CharLgi&Li stener. j avaOnTimeLi itear. j avaOelT oalsChajieLi s tener. jSoimdPlay jva- $ com, 1 ing. liinli anksn vi eti 申 Eqar dV i ew. j 掌 田 J | G

13、ameViow. j ava''1' gen Cenera.td Javi FilsG Aitdi-oid 2.2E 1 r t e電 s £ _n b s R a b 1 r ii 電阻sg- * 田+田An droidfl an i fest xml prQguard. cfg pro i ect.pr operties具體類的作用:類名具體功能LianliankanActivity主activity ,用戶看到的主界囿MyDialog游戲結(jié)束時彈出的dialogOnStateChangeListener狀態(tài)改變接口OnTimeListener時間控制接口

14、OnToolsChangeListener道具使用接口SoundPlay聲音播放類BoardView游戲主要邏輯控制GameView游戲水果控制界面的繪制3課題實(shí)現(xiàn)視圖類View類的實(shí)現(xiàn)View類是游戲的主要顯示區(qū)域。這一塊包含了水果圖標(biāo)。點(diǎn)擊事件發(fā)生時水果的變化。倆個水果連接時水果的消失與游戲中連接倆個水果之間的線的繪 制。這個處理需要只要View有變化必須強(qiáng)制刷新界面。不然界面不能及時更新。無法使游戲?qū)崿F(xiàn)一定的效果。onDraw()方法中主要實(shí)現(xiàn)水果的繪制,路徑的繪制,以及點(diǎn)擊事件之后的水果放大的繪制。該類中實(shí)現(xiàn)了游戲中的邏輯,以及視圖塊的改變。public classpublic點(diǎn)擊道具

15、5七百匚工匚倆個水果可以消除e enas viewiTxnal int kC二unt = 8 ;X1點(diǎn)擊到水果,水果放大強(qiáng)制刷新view調(diào)用public static final int yCdi_七-10;protectedint1 map = new intExCcunt lyCout;protectedint iaonSize;protected士nt icQnCounts=L9;protectedEltzaap Icons = new Bltinap Iconcounts;private Point path = null;protected List<Point> sel

16、ected = new ArrayList<Point>();public Boardview(Context contextf AttxibuteSet attxs> (口 prlvate void caLIconSize () _'putol-c void loadBitmaps(int key.Dxawable d!(protected void oiiDraw (Canvas canvas) public void drawLine(Point path) this.path = path;this.invalidate();(public Point Ind

17、extoScreen(Int x fintpublic Point sareenTolndex(int kinty)仁y) (主界面Activity 的實(shí)現(xiàn)水果已經(jīng)全部消除參數(shù)。ImageButton 的0的算法。主界面的截圖:游戲結(jié)束時D|游戲結(jié)束時有兩種狀F面的更新與實(shí)現(xiàn)圖如下:咻弼端必顯叫郵 飾覦 彈a岫主界面Activity 叫與View的顯示。實(shí)現(xiàn)難點(diǎn)主要在于SeeHandler的傳遞現(xiàn)的是游戲勝利狀10秒?,F(xiàn)的是游戲失敗狀規(guī)定時間到在游戲中通過Handler彳handler寸間內(nèi)將所如果在每一關(guān)的規(guī) 態(tài)。由此可以進(jìn)入下一二如果在規(guī)定時間結(jié)冰 態(tài)。由此可以重新開始,關(guān)繼續(xù)挑戰(zhàn)。永盛齊

18、百而4SAMSUNG游戲主要邏輯的處理r判斷是否可以消除判斷游戲中的倆個水果是否可以消除是游戲中的重點(diǎn)和難點(diǎn)。 其中涉及到這 倆個點(diǎn)是否可以通過小于等于 3的線段連通的一個算法。首先要將視圖中的水果 轉(zhuǎn)化成程序中的一個int型的MAP叩 數(shù)組。在該數(shù)組中存放的是水果種類,用int型進(jìn)行表示。如果該位置的水果已經(jīng) 被消除那么該位置的map值為0。其余有水果的為水果的種類值。點(diǎn)擊事件發(fā)生之后,將第一次點(diǎn)擊的水果加入一個List中,標(biāo)記為已選擇的。第二次點(diǎn)擊事件發(fā)生之后,進(jìn)行判斷,首先判斷否跟第一次點(diǎn)擊時的水果的 int值相等。如果不相等,將list清空,將該點(diǎn)加入list中。如果int值相等, 那

19、么進(jìn)行是否可以連接的算法進(jìn)行判斷。是是否可以連通。第一種情況:橫坐標(biāo)或者縱坐標(biāo)相等,且中間無水果第三種情況:判斷是否可以連通的算法:判斷倆個水果是否W以消除分三種情況。第一種第二種情況:情況:被選的倆點(diǎn)處于一條直線,橫坐標(biāo)或者緲坐標(biāo)相等,且該倆點(diǎn)中間的所有int值都為0。那么可以直接消除;第二種情況,這倆個點(diǎn)可以通過其中間的第三點(diǎn)連通那么也可以消除;第三種情況是這倆點(diǎn)通過其余倆點(diǎn)可以連接,那么也可以消除。對這三種情況分別進(jìn)行判斷,最后返回該倆點(diǎn)是否可以消除。游戲中的工具功能實(shí)現(xiàn)工具主要是倆個工具。分別是刷新工具與提示工具。刷新工具的實(shí)現(xiàn)是把圖 標(biāo)重新排列。提示工具是消除倆個可以連接的圖標(biāo)。 這

20、倆個工具被點(diǎn)擊之后會有 一個動畫的效果。讓用戶清楚的看到該工具的使用。刷新工具使用以后的效果是水果圖標(biāo)重新排列。該功能的實(shí)現(xiàn)就是重新隨即各個不為0的水果位置。提示工具是消除現(xiàn)可以連接的倆個水果。 該功能的實(shí)現(xiàn) 是通過判斷倆個水果能否消除的方法的基礎(chǔ)上。重新對每一個現(xiàn)有水果進(jìn)行判 斷。如果可以就立馬消除。提示工具具體實(shí)現(xiàn)代碼:public voLd autoClear() if (help = 0) SQLLndP工區(qū)產(chǎn).干工3丫 (工吃0> ;else(oundFltay.play (TD_SGUND_TTPf 0);help-;toolsChangeliistener. onlipCl

21、iang'ed (help);drawLine(path.toArray(new Point ); xefreshHandler.sleep(500);刷新工具實(shí)現(xiàn)代碼:public void refreshckange() if(refresh = 0 SOUndPlay,play (ID_SGUND_ERRDRf 0);return ;elserefresh-;SOUndPly.play (ID_S0mD_REF3ESHf 0);toolsChangeListener .onRefreshCiianged(refresh);change();游戲中聲音的配置raw朝ih. Ogg應(yīng)

22、j卜恥1new.。注©崎rff cho o ,。蕊Fj ills立ppear 1. 后召f7 | i i em 1. 口科 j i cig自iffl中id m芯稼+、£ values囪I lez. n旄聲音播放類的具體代碼:public class SoundPLay (int st re amVoluzne;private SoundPool soundFool;priva-e SashMap<IntegerfInteger> EonndPoclMap;public void initsounds(Context context) (soundPool 工 n

23、ew soundPool (£5 r AudioManager. SREAl-riUSICtsoundPoolHap = new ElashMap<Integer . Ineger> ();AudioMaiiager anaiiger : (AudioManager) context. getSys t*mSistrearaVoluwe = aiuanger *getStreamVoluiEe (AudxaNandger , STRE. )public void loadloaC (context context r int raw, int zn) soundPoolkap.put(ID, soundEool.load(contextf rawr 1); )public void play(int sound, int uLoop) IsoundPool.play(soundFoolMap.getsound) r streamVoLumer st uLoop f LtJ;)游戲中

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論