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

正文內(nèi)容

基于android的手機應用開發(fā)連連看游戲的開發(fā)與實現(xiàn)畢業(yè)設計論文(文件)

2025-07-14 13:21 上一頁面

下一頁面
 

【正文】 )) .getBitmap()。此時還要播放music0這段音樂來作為游戲的背景音樂。如果在游戲中用戶按了DPAD中鍵,則調(diào)用游戲控制器的autoErase方法來自動消除兩個能夠相連的圖片;如果用戶按了DPAD左鍵(即幫助鍵),則暫停游戲,返回到菜單。如果圖片與上次選中的圖片可以相連,則畫出連線然后擦去連線和兩個圖片,否則選中該圖片。具體的實現(xiàn)方法如下:case 。 break。 (重試)。activity中的另一段代碼如下:if(state==STATE_WIN){ playmusic(1)。同時播放music1這一段比較歡快的背景音樂。把游戲的視圖和邏輯控制部分區(qū)分開來,這樣寫起來可能覺得比較麻煩,但好處也是顯而易見的:首先這樣程序結(jié)構(gòu)比較清晰;以后擴展維護起來也比較方便,比如,要更改或美化游戲的界面,只需修改視圖部分;需要修改游戲規(guī)則,只需要修改控制器部分,只要保證這兩部分的耦合邏輯不變即可。在這里,不需要考慮游戲邏輯,只需要考慮需要哪些數(shù)據(jù),暴露些什么接口。Path數(shù)組變量為連線的折點,有控制其計算好了傳過來,在視圖中畫出連線。 if(changed){//offsetX、offsetY具體的計算方法 offsetX=iconWidth(rightleft()*iconWidth)/2。視圖的寬度減去圖片在橫向占的總像素數(shù)為橫向空白的像素數(shù),因為要橫向居中,這個數(shù)值除以2為最左側(cè)圖片的左側(cè)離視圖左側(cè)的距離。private Point screen2index(int x,int y){ return new Point((x+offsetX)/iconWidth,(y+offsetY)/iconHeight)。然后開始繪制圖片。畫完連線后,將map數(shù)組中需要消除的兩個位置置0,消空selected表,并將path設為null,這樣下次刷新的時候就可以把對應的兩個圖片消除并且將連線擦去。后面這次刷新有個延時,以達到動畫效果,這由控制器來控制,視圖中不予考慮。 }這個事件監(jiān)聽用來通知監(jiān)聽者用戶單擊了哪個圖片,即map數(shù)組對應的什么位置。通過事件,可以得知用戶在屏幕上單擊的點在視圖中的坐標,通過前面提到的screen2index方法轉(zhuǎn)成了對應map數(shù)組的元素。它的成員變量包括:列數(shù)、行數(shù)和圖片大小。private GameView gameView。前面視圖中的map數(shù)組只是對這個數(shù)組的一個引用,我們在控制器為它分配空間,生成初始化布局。一個是為了實現(xiàn)連線消除動畫,對GameView延時刷新;另一部分是更新游戲剩余時間,這部分需要有一個Timer。其中sleep方法實現(xiàn)了延時刷新功能。對于游戲的倒計時和幫助次數(shù)的更新,這里通過了一個TimerTask來實現(xiàn)。在游戲控制器中提供了startGame方法,用來開始一個新的游戲。 resume(m)。Resume是繼續(xù)一個游戲的方法,游戲暫停時計時器停止計時,在resume方法中,實例化并初始化了GameView類。itemClickListener方法中需要調(diào)用link方法,其中l(wèi)ink方法是連連看的核心算法,判斷兩個棋子是否能連,如果能連,將連線起始點和折點放到path變量中。其中shuffle方法,RefreshHandler定義中也要調(diào)用,在布局無解的情況也需要調(diào)用。不過其實有最后一種情況就夠了,前面兩種情況可以看作最后一種情況的特例。在link函數(shù)中還用到了expandH和expandV兩個方法,這兩個方法分別對應前面算法中提到的水平掃描延伸和垂直延伸,結(jié)果放到定義的ArryList中。Open Core是Android多媒體框架的核心,所有Android平臺的音頻、視頻的采集以及播放等操作都是通過它來實現(xiàn)。(2)PVAuthor:提供媒體流記錄的功能,完成各種音頻、視頻流以及靜態(tài)圖像的捕獲功能。除了從文件中播放媒體文件之外,還包含了與網(wǎng)絡相關的RTSP流。Media作為狀態(tài)機運行。 設計思路概述要實現(xiàn)視頻錄制的功能,首先我們要研究一下怎么實現(xiàn)音頻的錄制?,F(xiàn)在我們要實現(xiàn)錄音功能就得使用MediaRecorder類。()方法來設置音頻資源;這將會很可。等到Android支持外接攝像頭時會有新的方式??墒俏覀円绾未_定是否錄音成功呢,方法很簡單只要看一下SD卡內(nèi)是否有最新出現(xiàn)的音頻文件即可,我們按照步驟先點擊“開始”按鈕,過大約1分鐘時間點擊“停止”按鈕。 private Button StopButton。mMediaRecorder = new MediaRecorder()。設置音頻文件的編碼;(())。/sdcard/。 (176,(15)。 每行代碼的作用與錄制音頻的代碼相類似,這里不作詳細說明。2,這時,出現(xiàn)對話框,變量名是“path”,變量值就是要找到你的JDK所安裝的目錄下的bin文件夾的路徑,注意如果自己的“path”還有其他的值的話,要用“。在設計第一個游戲界面時,標題是“連連看”,兩個按鈕分別是開始游戲和退出。意思是每隔100ms程序就會刷新一下游戲的界面,之前設置的是500ms,這樣每隔500ms才刷新一次界面,那么當處在游戲界面時,如果點擊間隔時間小于500ms的時候游戲就會出現(xiàn)問題,如下圖所示:圖4—3 在游戲界面時點擊過快的報錯界面然后將間隔時間調(diào)成100ms后,出現(xiàn)這種錯誤的幾率明顯降低。這段代碼中的10改寫成5,問題就解決了。大體而言有三個基本原則:(1)地圖中的每一個數(shù)字的個數(shù)都是偶數(shù),也即都是成對的出現(xiàn) 。,繼續(xù)游戲的按鈕要設置成在開始時不可用,否則當我們進入游戲時看到的第一個界面就會是圖4—5 重新開始的時候跳出暫停時界面這顯然是錯誤的,和我們的目的不一致,解決方法也很簡單,只要將“繼續(xù)游戲”按鈕這部分的代碼改為:Button android:layout_height=wrap_contentandroid:layout_width=100dipandroid:id=+id/resumeandroid:text=繼續(xù)游戲android:layout_margi。(3)地圖中的每一個數(shù)字的種類不能大于已有的圖案的個數(shù)。之前寫的代碼后面并沒有除以1000,然后計算時間總是不對,()出了問題,()是毫秒顯示,于是在后面除以1000得到了正確的結(jié)果。本來將圖片種類設置為10種,我想先將5個圖片放進drawable文件夾中試驗一下,這樣程序雖不會報錯,但是運行結(jié)果卻有問題,運行時,視頻播放結(jié)束后,就會直接報錯,有時會加載出一到兩個圖標后報錯,如圖:圖4—4 家在圖標的報錯界面后來仔細地研究了一下出現(xiàn)問題的原因,為什么有時候能夠出現(xiàn)一兩個圖標呢,原因是程序?qū)τ螒蚪缑娴某跏蓟椒ㄊ菍?0個圖標隨機地進行加載,而這10個圖標編號為1到10來進行區(qū)分,由于真實地只放進去了5個圖標,所以當加載到第6個到第10個的時候,由于并沒有圖標,所以會報錯,如果很幸運前幾個加載的都是編號1到5的圖標,則能成功地加載進去,但是由于一共是8*10個圖標,肯定有一個會是編號為6到10的,所以生成界面的時候基本上一定會出錯。同樣道理播放視頻和正式的游戲界面也要先在Layout文件夾中各寫一段代碼,這兩段代碼的Layout顯示分別為:圖4—2 圖4—3 并不能因為什么都沒顯示,就認為這段代碼不起作用,通俗地說只是現(xiàn)在這里占個位,然后再向其中填充應有的內(nèi)容。3,還需要配置另一個環(huán)境變量,也是系統(tǒng)變量里面的,選擇“新建”,然后在變量名里面寫入“classpath”,變量值里面寫入你的JDK所安裝的目錄下的lib文件夾下的“”和“”,然后點確定,再確定,就完成了JDK的安裝和環(huán)境變量的配置了。接下來就介紹一下在進行畢業(yè)設計時遇到的問題,以及解決的方法。()。 ()。 Android多媒體錄制中的錄像就是Audio+Video,所以還要加點東西,path設置麥克風;()。if(().equals(A_MOUNTED))這個條件語句用來檢測是否存在SD卡,如果不存在,屏幕就會提示“沒有SD卡”,mRecAudioFile = (strTempFile,.amr, mRecAudioPath)。由于模擬器上沒有sd卡,所以視頻錄制的部分并不能在模擬器上演示,只能在真機上進行調(diào)試,測試結(jié)果也是成功的,如圖所示: 代碼的實現(xiàn)與分析這里僅做簡要的介紹,詳細地代碼見附錄2。當點擊“停止”按鈕時,停止錄音(stop),然后釋放MediaRecorder對象(release),完成錄音。在最新的Android ,通過MediaRecorder類的相關方法可以錄制視頻保存成為MPEG錄制一個Media音頻資源大致上可以分為7個步驟:1;,像TITLE,TIMESTAMP,最重要的是MIME_TYPE?,F(xiàn)在幾乎每個手機都有錄音功能,其用途也很廣,比如我們需要記錄某些重要的內(nèi)容時,手頭又沒有筆之類的工具,這時我們就可以通過錄音功能就愛你過通話內(nèi)容錄制下來。設置后,可執(zhí)行任何時間長度的錄制,指導用戶停止。 MediaRecorder類的介紹錄制音頻的程序要多次用到MediaRecorder類,故在這里做一下詳細介紹。在移動終端中常常使用多媒體應用程序,例如媒體播放器、照相機、錄像機、錄音機等等。程序員可以通過Open Core方便快速地開發(fā)出想要的多媒體應用程序,例如:錄音、播放、回放、視頻會議、流媒體播放等等。第三章 獲取視頻文件的程序設計 Android多媒體開發(fā)背景介紹Android的核心代碼在去年3月底有了一次比較重大的改動,尤其是多媒體方面的改動比較大,主要目的是為了更好地實現(xiàn)Camcoeder,以及進一步實現(xiàn)Video Telephony。其中用到了linkD方法,這個方法判斷兩個棋子是否能直接相連。我們的期盼不是很大,這樣遍歷起來也比較快。這個算法選將棋子按順序排好,再隨即交換來大亂布局。在resume方法中,實例化并初始化了GameView類。其實開始一個新游戲和恢復游戲的區(qū)別就在于前者對游戲數(shù)據(jù)進行初始化,而后者這些數(shù)據(jù)已經(jīng)有了值。 help =100。還需要更新剩余時間,剩余時間的計算方法remainTime=totalTime((()startTime)/1000);剩余時間的計算方法,得除以1000才是秒計時。游戲視圖延時刷新后,需要判斷是否已經(jīng)完全消除,即map數(shù)組元素全為0,如果是這樣,則通過將activity狀態(tài)置為STATE_WIN回到菜單。這兩部分刷新我們通過給一個定義好的Handler發(fā)不同的消息實現(xiàn)。這個變量在視圖中提到過,是保存連線的起始點及折點。private int[][]map。圖片大小設置成45private Main app。這個監(jiān)聽者是在控制器中實現(xiàn)的,后面將會看到。視圖類的onTouchEvent方法里面的ACTION_DOWN事件。前面的變量還有一個OnItemClickListener類型的mOnClickListener。當游戲控制器調(diào)用這個方法后,視圖刷新將連線畫上。如果path數(shù)組長度大于等于2,表示需要畫連線,path數(shù)組中的點坐標為map數(shù)組的坐標,需要轉(zhuǎn)換為屏幕坐標。 }下面看一下GameView的核心部分,是onDraw方法的實現(xiàn)。因為邊界不需要這么寬,需要將圖片橫坐標向左移的距離為兩者之差。 }}這里說明一個橫向偏移值的計算,縱向同理。Map數(shù)組是游戲的布局數(shù)組,在前面的算法介紹中提到過,是帶邊界的,而邊界如果在界面中與其他位置統(tǒng)一處理會浪費很多屏幕空間,因此通過offsetX、offsetY變量來調(diào)整。每次可以有多個圖片被選中(其實最多應該有兩個,邏輯部分在我們的控制器中實現(xiàn),這里不需要管),所以被選中的圖片坐標用一個list來存儲。第三部分已經(jīng)進行了比較詳細的介紹。所以當我們點擊再玩一遍時,游戲又重新加載一次圖標資源,重新進入了初始化布局界面。 (再玩一遍)。如圖所示:圖2—10 連連看失敗后的界面(重試)。如圖所示:圖2—9 連連看暫停時的界面在activity中,有一段代碼如下,else if(state==STATE_LOSE){ playmusic(2)。 state=STATE_PAUSE。在游戲中,用戶按下DPAD的中鍵,為幫助功能,幫助用戶消除可以相連的兩個圖片,當使用幫助達到規(guī)定次數(shù)后禁用該功能;本程序為了方便調(diào)試將幫助次數(shù)設為100次,時間設為200s。如果用戶在游戲中按了home鍵退到Home界面或通過其他方式切換到其他activity,要暫停游戲。在這里我們還要響應按鍵事件,就是當玩家點擊其中的一個圖標資源的時候,程序要有所反應。還定義了一個shuffle方法,來對圖標進行隨機互換。 for(int i=0。如果程序是第一次啟動,則新建游戲控制器對象并加載圖表資源。將這些變量定義為靜態(tài)變量,只要程序進程不退出,每次用戶進入程序時都可重復使用這些變量資源,這樣程序的狀態(tài)可以記錄下來,圖標資源也只需要加載一次。并將下載到的10中圖片資源存放在drawable文件夾中。private static int state=STATE_MENU。public static final int STATE_WIN=2。這里說明一下Layout中比較常出現(xiàn)的FILL_PARENT和WRAP_CONTENT,F(xiàn)ILL_PARENT意味著View想和父容器一樣大,也就是最小的填充(padding)。3個按鈕分別為繼續(xù)游戲、開始游戲和退出。RelativeLayout負責想對布局。視頻播放的截圖如下所示:
點擊復制文檔內(nèi)容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1