安卓應用-實現(xiàn)簡易打地鼠游戲_第1頁
安卓應用-實現(xiàn)簡易打地鼠游戲_第2頁
安卓應用-實現(xiàn)簡易打地鼠游戲_第3頁
安卓應用-實現(xiàn)簡易打地鼠游戲_第4頁
安卓應用-實現(xiàn)簡易打地鼠游戲_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

實 習 筆 記學 院 計算機科學與工程學院 班 級 專 業(yè) 計算機科學與技術 姓 名 于志 學 號 指導教師 唐培麗 實習時間 2016.06.202016.06.24 實習地點 學院綜合實驗中心 一內(nèi)容提要本程序?qū)崿F(xiàn)了一個安卓APP的簡易打地鼠游戲,地鼠會在屏幕上隨機顯示,觸摸地鼠后,該地鼠將不顯示,同時在屏幕上通過消息提示框顯示達到了幾只地鼠,地鼠出現(xiàn)的時間也是隨機產(chǎn)生的。運行環(huán)境采用eclipse,java JDK,Android SDK,ATD插件來完成對本次實驗的運行。目錄題目-4時間-4功能設計-4數(shù)據(jù)結構的設計-5算法的設計-7關鍵代碼-8參考資料-13教學實習總結報告-13 一題目本程序?qū)崿F(xiàn)了一個安卓APP的簡易打地鼠游戲。二時間2016.06.202016.06.24三功能設計本實驗應用了線程的相關知識來實現(xiàn)打地鼠的相關功能,首先從網(wǎng)絡上下載相關圖片來實現(xiàn)頁面的布局,然后綁定主Activity,聲明相關變量,創(chuàng)建線程,再利用java所提供的Random()方法獲取隨機位置與隨機時間,傳遞此消息,再利用消息處理類handler中的handleMessage()方法接收消息,并在屏幕上顯示。再為地鼠圖片設置監(jiān)視事件監(jiān)聽器來使其打到地鼠有反應并用消息提示框顯示打中地鼠個數(shù)。1.設置地鼠出現(xiàn)位置和出現(xiàn)時間的相關功能點:創(chuàng)建并開啟一個新線程,在重寫的run()方法中,創(chuàng)建一個記錄地鼠位置的索引值的變量,并實現(xiàn)一個循環(huán),在該循環(huán)中,首先生成一個隨機數(shù),來表示地鼠出現(xiàn)的位置,并獲取一個Message對象,然后將生成的隨機數(shù)作為地鼠的位置的索引值保存到Message對象中,再為該Message設置一個消息標識并發(fā)送消息,最后讓線程休眠一段時間(該時間隨機產(chǎn)生作為地鼠出現(xiàn)的時間)。2.設置地鼠出現(xiàn)的相關功能點:創(chuàng)建一個Handler對象,在重寫的handleMessage()方法中,首先定義一個記錄地鼠位置索引值的變量,然后使用if語句根據(jù)消息標識判斷是否為指定的消息,如果是,則獲取消息中保存的地鼠位置索引值,并設置地鼠在指定位置顯示。3.來統(tǒng)計打中地鼠個數(shù)的相關功能點:獲取布局管理器中添加的ImageView組件,并為該組件添加觸摸監(jiān)聽器,在重寫的onTouch()方法中,首先設置地鼠不顯示,然后成功打中地鼠后,將i的值加1,再通過消息提示框提示打中了幾個地鼠。四數(shù)據(jù)結構的設計1.創(chuàng)建并開啟一個新線程,在重寫的run()方法中,利用了一個while循環(huán),當線程沒有被終止時執(zhí)行循環(huán),首先定義index并初始化賦值為0,然后利用Random()方法產(chǎn)生0數(shù)組長度之間的隨機數(shù),并賦值給index,然后把這個消息發(fā)送給handler對象,利用handler中的handlemessage()方法接受消息,最后用trycatch()語句捕獲異常,并把線程的休眠時間利用Random()方法設置為隨機時間,用于地鼠隨機出現(xiàn)的時間。代碼如下:Thread t = new Thread(new Runnable() Overridepublic void run() int index = 0;while (!Thread.currentThread().isInterrupted() index = new Random().nextInt(position.length-1)+0;Message m = handler.obtainMessage();m.what = 0x101;m.arg1 = index; handler.sendMessage(m); try Thread.sleep(new Random().nextInt(500) + 500); catch (InterruptedException e) e.printStackTrace(); );t.start();2.獲取布局管理器中添加的ImageView組件,并為該組件添加觸摸監(jiān)聽器,在重寫的onTouch()方法中,首先設置地鼠不顯示,然后利用i+語句實現(xiàn)對打中的地鼠數(shù)加一,并顯示消息提示框,提示打中多少只地鼠。代碼如下: mouse = (ImageView) findViewById(R.id.imageView1); / 獲取ImageView對象mouse.setOnTouchListener(new OnTouchListener() Overridepublic boolean onTouch(View v, MotionEvent event) v.setVisibility(View.GONE); / 設置地鼠不顯示i+;Toast.makeText(MainActivity.this, 打到 + i + 只地鼠!,Toast.LENGTH_SHORT).show(); / 顯示消息提示框return false;);五算法的設計(一).首先在MainActivity中,聲明程序中所需要的成員變量,具體算法如下:1定義private變量I,mouse,handler;2定義存儲地鼠位置的二維數(shù)組position并為其初始化;(二)創(chuàng)建并開啟一個新線程,讓時間隨機產(chǎn)生,用于地鼠隨機出現(xiàn),具體算法如下:1 創(chuàng)建一個新線程,重寫run()方法,定義index為0;2 寫while()循環(huán),條件是當線程沒終止時執(zhí)行循環(huán);3 獲取隨機位置坐標并傳遞這個坐標;4 設置時間是隨機的,并用trycatch語句捕獲異常;(三).創(chuàng)建一個handler()對象,設置地鼠在指定位置顯示,具體算法如下:1創(chuàng)建handleMessage()方法接收消息;2當消息標示與上述傳遞的消息標識一致時接收消息;3獲取消息的索引值并設置地鼠出現(xiàn)的隨機位置,讓其顯示。(四).首先重寫onCreat(),顯示消息提示框提示打中地鼠的個數(shù)。算法如下:1 獲取布局中的圖像視圖組件;2 為圖像視圖添加事件監(jiān)聽器,設置點到地鼠,地鼠消失;3 當打中地鼠時i加1,顯示消息提示框,提示打中地鼠的個數(shù)。六關鍵代碼1.頁面布局所用代碼:2.實現(xiàn)打地鼠主要功能模塊代碼:public class MainActivity extends Activity private int i = 0; / 記錄其打到了幾只地鼠private ImageView mouse; / 聲明一個ImageView對象private Handler handler; / 聲明一個Handler對象public int position = new int 603,532,535,624, 231, 325 , 424, 349 , 521, 256 , 543, 296 , 719, 245 , 832, 292 , 772, 358 ; / 創(chuàng)建一個表示地鼠位置的數(shù)組Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.main);mouse = (ImageView) findViewById(R.id.imageView1); / 獲取ImageView對象mouse.setOnTouchListener(new OnTouchListener() Overridepublic boolean onTouch(View v, MotionEvent event) v.setVisibility(View.GONE); / 設置地鼠不顯示i+;Toast.makeText(MainActivity.this, 打到 + i + 只地鼠!,Toast.LENGTH_SHORT).show(); / 顯示消息提示框return false;);handler = new Handler() Overridepublic void handleMessage(Message msg) int index = 0;if (msg.what = 0x101) index = msg.arg1; / 獲取位置索引值mouse.setX(positionindex0); / 設置X軸位置mouse.setY(positionindex1); / 設置Y軸位置Log.i(222:, positionindex0+ +positionindex1);mouse.setVisibility(View.VISIBLE); / 設置地鼠顯示super.handleMessage(msg);Thread t = new Thread(new Runnable() Overridepublic void run() int index = 0; / 創(chuàng)建一個記錄地鼠位置的索引值while (!Thread.currentThread().isInterrupted() index = new Random().nextInt(position.length-1)+0; / 產(chǎn)生一個隨機數(shù)Log.i(:, index+);Message m = handler.obtainMessage(); / 獲取一個Messagem.what = 0x101; / 設置消息標識m.arg1 = index; / 保存地鼠標位置的索引值handler.sendMessage(m); / 發(fā)送消息try Thread.sleep(new Random().nextInt(500) + 500); / 休眠一段時間 catch (InterruptedException e) e.printStackTrace(););t.start(); / 開啟線程相關截圖如下:七參考資料明日科技編著.Android從入門到精通(第一版).清華大學出版社,2012年9月明日科技編著. JAVA從入門到精通(第一版).清華大學出版社,2012年9月CSDN論壇:/八教學實習總結報告通過本次的實習,讓我學會了如何利用安卓線程的知識來控制相關耗時操作,讓我更加了解了如何創(chuàng)建新線程,開啟線程,線程的休眠,線程的中斷,利用handler類和Message類的相關方法來控制對線程的操作,進而控制相關UI界面的操作。在編寫該程序的過程中,出現(xiàn)了許多小的邏輯錯誤,例如地鼠出現(xiàn)的時間過長,地鼠不顯示等問題,都是由于自己對知識的理解不到位和自己的大意疏忽導致的,使我認識到自己編程技術還有些欠缺,對知識的理解還不

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論