freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android益智拼圖游戲設(shè)計(jì)畢業(yè)論文(編輯修改稿)

2025-07-27 11:34 本頁面
 

【文章內(nèi)容簡介】 ageItem,將各個(gè)圖片的序號傳入了數(shù)組中。 public ListMapString, Object getAllItemsForListView() { ListMapString, Object imageItem = new ArrayListMapString, Object()。 for (int i=0。i。i++) { HashMapString, Object tempMap = new HashMapString, Object()。 (ImageView,pictureArray[i])。// (tempMap)。 } return imageItem。 } 步數(shù)和時(shí)間設(shè)置 在JigsawActivity的initControls分別給stepNumTV和timeTV做出定義。玩家點(diǎn)擊界面上的“play”按鈕,啟動onClick方法,該方法開始給步數(shù)和時(shí)間賦初值。關(guān)于時(shí)間設(shè)置,還給出了時(shí)間的分秒設(shè)置。這是在timeParser方法中實(shí)現(xiàn)的,每過60秒,分鐘加1。游戲過程中圖片移動一次,步數(shù)加1。具體實(shí)現(xiàn)如下:在游戲過程中,秒數(shù)一直在加一,這一實(shí)現(xiàn)體現(xiàn)在GameRunable 類中的run方法中。當(dāng)然在秒數(shù)加1之前要先判斷是否為游戲狀態(tài),代碼為: public void run() { while(isGaming){ try { second++。 Message msg=new Message()。 =TIME_MESSAGE。 (msg)。 (1000)。 // } catch (InterruptedException e) { ()。 } }步數(shù)和時(shí)間的運(yùn)行都是handleMessage方法中實(shí)現(xiàn),在該方法中通過switch—case語句實(shí)現(xiàn)判斷。public void handleMessage( msg){ switch(){ case TIME_MESSAGE: break。 case INIT_MESSAGE: break。 } (msg)。 } 拼圖的實(shí)現(xiàn)在JigsawActivity中進(jìn)行游戲時(shí)首先要解決的問題就是圖片的隨機(jī)分割問題。該問題的解決方案在JigsawView類中,JigsawActivity只是導(dǎo)入了該類。在該類中定義了相當(dāng)多的變量,具體如下: private Bitmap[] oBitamp。//初始化切割后的圖片輸數(shù)組 private int row=2。//行 private int col=2。//列 private int cutBitmapWidht。//切割后每張位圖的寬 private int cutBitmapHeight。//切割后每張位圖的高 private float x,y。//當(dāng)然觸發(fā)的X,Y坐標(biāo) private int offsetW,offsetH。//偏移量寬度\高度 private int maxRectW,maxRectH。//最大矩形寬,高 private PointF downPoint=new PointF()。//觸發(fā)的坐標(biāo)點(diǎn) private PointF currPoint=new PointF()。//當(dāng)前坐標(biāo)點(diǎn) private int step=0。//步數(shù)private boolean isGameing=false。//是否游戲中該問題的解決涉及到隨機(jī)和分割兩個(gè)算法。關(guān)于隨機(jī)的問題,算法中使用了randomGenerated 方法,該方法隨機(jī)生成0n范圍內(nèi)不重復(fù)的數(shù)字,不包含n。在Math類中有定義的random方法,因此只需要調(diào)用以下。代碼如下: private void randomGenerated(int n){ VectorInteger vector=new VectorInteger()。 int[] num=new int[n]。 for(int i=0。in。i++){ int radom = (int)(()*n)。 radom = (int)(()*n)。 while((radom)){ radom = (int)(()*n)。 } (radom)。 num[i]=radom。 } for(int i=0。icol。i++){ for(int j=0。jrow。j++){ Picture picture=new Picture()。 =num[i*row+j]。 pictrueArray[j][i]=picture。 (pictrueArray[j][i].value)。 } } cutBitmap(mBitmap)。 }分割圖片是通過cutBitmap方法實(shí)現(xiàn)的,定義了cutBitmaoWidth,cutBitmapHeight變量表示分割后圖片的寬和高,并根據(jù)難度選擇的行數(shù)和列數(shù)初始化分割后的圖片數(shù)數(shù)組。具體代碼如下: private void cutBitmap(Bitmap srcBitamp){ cutBitmapWidht=()/row。 //分割后每張位圖的寬。 cutBitmapHeight=()/col。 //分割后每張位圖的高。 offsetW=cutBitmapWidht。 //偏移量寬度。 offsetH=cutBitmapHeight。 //偏移量高度。 oBitamp=new Bitmap[row*col]。 //初始化切割后的圖片數(shù)數(shù)組。 for(int i=0。icol。i++){ for(int j=0。jrow。j++){ oBitamp[i*row+j]=(srcBitamp, cutBitmapWidht*j, cutBitmapHeight*i, cutBitmapWidht, cutBitmapHeight)。 } } for(int i=0。icol。i++){ for(int j=0。jrow。j++){ if((i==(col1))amp。amp。(j==(row1))){ pictrueArray[j][i].bitamp=null。 }else{ pictrueArray[j][i].bitamp=oBitamp[pictrueArray[j][i].value]。 } } }用randomGenerated 方法解決了圖片隨機(jī)分割的問題之后,接著就是游戲的運(yùn)行即交換圖片功能的實(shí)現(xiàn)。首先確保鼠標(biāo)點(diǎn)擊并拖動圖片有效,然后實(shí)現(xiàn)圖片的交換。為確保鼠標(biāo)點(diǎn)擊和拖動有效,定義onTouchEvent方法進(jìn)行活動的判斷,該方法中定義了x,y兩個(gè)變量表示坐標(biāo),來顯示鼠標(biāo)點(diǎn)擊的位置。 onTouchEvent方法中定義了如下兩個(gè)變量: x=()。 y=()。 通過如下語句實(shí)現(xiàn)判斷鼠標(biāo)的活動:按下(),離開(),移動()。 if(!((x=maxRectW)amp。amp。(y=maxRectH))){ return false。 } switch(()){ case :{ } case :{ } case :{ } } return (event)。 }交換圖片的動作由swapPicture方法實(shí)現(xiàn),交換代碼簡單如下: int value。 value=。 =。 =value。 金陵科技學(xué)院學(xué)士學(xué)位論文 第5章 系統(tǒng)測試 5 系統(tǒng)測試 Android仿真器介紹仿真器是在計(jì)算機(jī)中運(yùn)行的一個(gè)虛擬的移動裝置,用它來設(shè)計(jì)、調(diào)試應(yīng)用。ADT是一個(gè)用于開發(fā)Android應(yīng)用的eclipse插件,它方便了我們的開發(fā)。例如,它讓我們方便從eclipse內(nèi)部訪問DDMS工具(可用于截屏,管理portforwarding,設(shè)斷點(diǎn),查看線程和進(jìn)程信息)DDMS(Dalvik Debug Monitor Service)和Dalvik虛擬機(jī)集成,將在IDE和模擬器起到一個(gè)轉(zhuǎn)發(fā)服務(wù)。用它能管理仿填器或者設(shè)備的進(jìn)程,并且輔助調(diào)試。你可用它殺死進(jìn)程,選擇某一進(jìn)程去DEBUG,產(chǎn)生TRACE數(shù)據(jù),查看堆和線程信息等等。Aapt(Andvoid Asset Packaging Tool),。Aidl(Andvoid Interface Description Language)用于產(chǎn)生代碼。Sqlite3用于訪問SQLite數(shù)據(jù)文件。Traceview用于查看LOG信息。ActivityCreator用于產(chǎn)生ant文件的腳本。當(dāng)然,若用eclipse插件就不需要它了。 功能模塊測試在虛擬器上完成一次拼圖游戲,即可測試出本設(shè)計(jì)是否已經(jīng)完成。下面給出各個(gè)功能模塊的測試過程,若這些功能在模擬器上都能得到體現(xiàn),則說明本設(shè)計(jì)基本成功。1) 難度選擇模塊:在選擇界面點(diǎn)擊“等級”下拉框,選擇一個(gè)難度,按下“確定”按鈕后跳轉(zhuǎn)到游戲界面,在游戲界面的文本框“等級”下顯示出玩家選擇的難度。界面如下: 難度選擇模塊2) 圖片選擇模塊:在選擇界面點(diǎn)擊一張圖片,按下“確定”按鈕后跳轉(zhuǎn)到游戲界面,在游戲界面的圖片框中顯示玩家選擇的圖片。界面如下: 圖片選擇模塊3) 步數(shù)和時(shí)間設(shè)置模塊:在游戲界面,點(diǎn)擊“play”按鈕后,時(shí)間開始自加1秒,每移動一個(gè)圖塊,步數(shù)一欄加1 。界面如下: 步數(shù)和時(shí)間設(shè)置模塊4) 游戲?qū)崿F(xiàn)模塊:在游戲界面,點(diǎn)“play”按鈕后,鼠標(biāo)點(diǎn)擊圖塊并拖動,能與空白圖塊交換位置。當(dāng)圖片拼成原樣時(shí),彈出窗口提示游戲結(jié)束。界面如下: 游戲?qū)崿F(xiàn)模塊 出現(xiàn)的錯(cuò)誤及解決方案完成系統(tǒng)的過程中不可避免的出現(xiàn)了一些問題,通過自我學(xué)習(xí)和他人指導(dǎo),最終解決了這些問題。: 錯(cuò)誤及解決方案對照表系統(tǒng)出現(xiàn)的錯(cuò)誤解決方案Activity之間的界面跳轉(zhuǎn)無法實(shí)現(xiàn)。各個(gè)控件之間的鏈接出錯(cuò)。運(yùn)行游戲時(shí),系統(tǒng)報(bào)錯(cuò),無法正常游戲檢查SDK版本以及仿真器的配置。金陵科技學(xué)院學(xué)士學(xué)位論文 第6章 總結(jié)與展望6 總結(jié)與展望大學(xué)四年學(xué)習(xí)的編程思想和編程技巧,在最后的畢業(yè)設(shè)計(jì)當(dāng)中得到了運(yùn)用。經(jīng)過此次畢業(yè)設(shè)計(jì),充分認(rèn)識到了自己編程能力方面的缺陷,感覺到自己的基礎(chǔ)比較薄弱。但在這段時(shí)間里,我不斷地發(fā)現(xiàn)自己的問題,并且找出問題產(chǎn)生的原因,根據(jù)相關(guān)的方法解決問題。幾個(gè)月的努力沒有白費(fèi),終于基本上完成拼圖游戲的功能,雖然還有不少不足,我將不斷的完善它。做一個(gè)完整的系統(tǒng)之前,必須先對該系統(tǒng)進(jìn)行需求分析,擬好系統(tǒng)需要達(dá)到的功能和系統(tǒng)的所有需求,并且畫出系統(tǒng)的大體設(shè)計(jì)流程圖和框架。做完這些準(zhǔn)備工作,做系統(tǒng)的時(shí)候才會得心應(yīng)手。想到那里就做到那里,不僅效率不高,還會影響到系統(tǒng)的可用性。完成系統(tǒng)之后才發(fā)現(xiàn),對于軟件設(shè)計(jì),要想做到得心應(yīng)手,必須多多練習(xí)。只有寫夠足夠多的代碼,才能真正理解軟件設(shè)計(jì)的思想及運(yùn)用。當(dāng)然要做到這一步,要付出相當(dāng)多的努力,在沒有做到之前,遇到不懂的地方就要多參考資料,請教別人。金陵科技學(xué)院學(xué)士學(xué)位論文 參考文獻(xiàn)
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1