




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、石家莊科技信息職業學院畢 業 論 文題目:基于android操作系統的飛機大戰手機游戲 學 號: 090124012 姓 名: 魏鑠 專業班級:軟件技術(游戲方向)09-24 班指導教師: 劉永偉 完成日期: 2011-12-22 摘要: 飛機大戰是滾動屏動作類游戲的一種,其中融入了很多動作類游戲特有的技術,并且畫面流暢、聲音震撼。 當今網絡發展迅速,益智類游戲被廣泛運用到網絡各大平臺上。借鑒網絡各大平臺上的游戲,通過eclipse android sdk 利用java語言編寫的飛機大戰。本文闡述了在android平臺上,面向對象的軟件開發思想對飛機大戰游戲系統的分析、設計及實現過程。在項目的
2、實踐過程中,主要用到了以下技術:手機布局主要使用了xml設計,程序及其子模塊的生命周期管理用到了activity流程控制,游戲的畫面更新使用的是手機的2d圖形編程。本論文的前半部分將簡要介紹系統相關的行業信息及基礎的技術知識,后半部分將對本人在系統各模塊中所使用的關鍵技術的實現進行了全面的介紹。 關鍵詞:滾屏游戲;飛機大戰;手機游戲 ;android平臺abstract: the world war ii aircraft rolling screen action game one, incorporating many action games unique technology, and
3、 smooth picture, sound rock.the network is developing rapidly, a puzzle game is widely applied to the network the platform. from the network the platform game, through the eclipse android sdk java language prepared by the world war ii aircraft.this paper elaborated on the platform of android, object
4、-oriented software development thought to the world war ii aircraft game system analysis, design and implementation process. in the practice of the project process, the main use of the following techniques: the layout of the main mobile phone using xml design, procedures and sub module life cycle ma
5、nagement used in the activity process control, the game screen is updated using the mobile phone 2d graphics programming. in this paper, the front half part of brief introduction of system related industry information and basic technical knowledge, the second part of the each module of the system us
6、ed in the realization of the key technology for a comprehensive introduction.key words: scrolling game; world war ii aircraft; mobile phone games; android platform目 錄一、 緒論5二、 相關研究綜述6(一)關于java語言6 (二) 關于android8三、系統開發環境及相關技術10四、游戲所需類的分析與實現11(一)游戲的框架簡介11(二)游戲界面的框架簡介12(三)各個類的簡要介紹13五、游戲界面展示22總結27致謝28參考文獻
7、29前 言隨著3g移動網絡應用的推廣,手機游戲的規模、復雜程度日益增強;其技術手段、設計思想、系統體系結構都發生了深刻的變化。手機操作系統正朝著高處理能力、多功能、智能化的方向發展。近年來,網絡文化市場發展很快,隨著互聯網的迅速普及、寬帶的接入社區和家庭,我國網絡游戲市場發展迅速并進入了一個高速增長期,并已經創造了較大的產值,帶動了相關產業的發展?,F在,游戲的類型也由最初的動作游戲和簡單益智游戲向更復雜、更高智力,更具真實性的游戲發展。目前的游戲種類繁多,包括角色扮演、仿真模擬類、人工智能、休閑類、渲染類、網絡類等等,甚至有的游戲包含了好幾種類型。機戰類游戲一直以來都很多。但仿真模擬類的游戲卻
8、有不少,現在休閑類的技術廣泛的應用到很多游戲里面等等。飛機大戰游戲是廣泛人士喜愛的游戲,通過上下左右鍵控制方向a鍵發射子彈,游戲中有加血道具與子彈升級道具。并有關卡boss等著與你死戰。鑒于游戲的對社會的巨大影響力和光輝的發展前景,以及我們自己對游戲愛好,這次的畢業設計我們決定嘗試設計和制作一個具有一定可玩性的游戲。期間,我們收集相關資料、研究同類型的游戲、閱讀有關這類型游戲和相關技術性的書籍,通過制作游戲項目來熟悉游戲的制作思路、過程,加深對面向對象編程語言的掌握,培養自己的耐心、細心和考慮問題的全面性,同時解決本課題要完成的問題,如游戲框架如何構建,如何完善游戲的各種功能,如何能讓游戲有音
9、樂和音效的實現,如何能讓游戲過關,如何能讓游戲界面美觀,看起來舒服感覺。一、緒論11 研究內容android平臺飛機大戰是基于android手機平臺,運用java語言編寫的一款手機滾屏類射擊游戲。12 研究意義android平臺手機游戲的開發的意義在于活動人的思維,使人精神放松,鍛煉人的反應能力與應變能力。13研究現狀和發展趨勢據gartner最新數據顯示,2010年第二、三季度全球智能手機銷售繼續大幅增長,其中第三季度安卓占全球智能手機市場的25.5%,僅次于塞班,成為第二大智能手機系統。2010第二、三季度與去年同期相比,增度分別是15.4%及22%,增勢迅猛。而塞班系統較09年的市場份額
10、,盡管終端銷量有大幅度提升,但增勢下滑10%,形勢非常嚴峻。其他操作系統的表現則要平穩很多。安卓是首款開源代碼的操作系統,采用linux內核,開放手機聯盟(oha)成員可以任意使用和修改安卓的sdk軟件包。系統的開源性使其具有良好的拓展性,一方面,為眾多移動應用開發者提供了良好的系統性平臺,有利于移動應用的集合;另一方面,終端廠商可以針對自身的特殊需要“定制化開發”。與此相比,盡管2010年2月,塞班基本完成開源工作,但由于代碼臃腫,用戶界面設計缺失,塞班的開源并無實際意義,錯失發展良機。我們認為,安卓在全球市場的成長壯大,塞班市場份額不斷下跌已成不爭事實。安卓操作系統發展迅猛主要得益于免費、
11、開源和良好產業運作策略,這三點為安卓在智能手機市場贏得更多的發展機遇。系統的免費讓更多的廠商加入,推動了份額的上升;代碼的開源讓更多的開發者進入應用開發;應用的豐富吸引了更多用戶選擇,這也是谷歌值得眾多廠商學習的地方。此外,谷歌通過oha聯合眾多廠商進行系統研發,不斷更新版本,將系統應用推廣到更多的終端產品中,確保用戶體驗持續改善。二、相關研究綜述2.1 關于java語言java編程特點 1、java語言是簡單的。java語言的語法與c語言和c+語言很接近,使得大多數程序員很容易學習和使用java。另一方面,java丟棄了c+ 中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承
12、、自動的強制類型轉換。特別地,java語言不使用指針,并提供了自動的廢料收集,使得程序員不必為內存管理而擔憂。 2、java語言是一個面向對象的。java語言提供類、接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實現機制(關鍵字為implements)。java語言全面支持動態綁定,而c+ 語言只對虛函數使用動態綁定。總之,java語言是一個純的面向對象程序設計語言。 3、java語言是分布式的。java語言支持internet應用的開發,在基本的java應用編程接口中有一個網絡應用編程接口(java net),它提供了用于網絡應用編程的類庫
13、,包括url、urlconnection、socket、serversocket等。java的rmi(遠程方法激活)機制也是開發分布式應用的重要手段。 4、java語言是健壯的。java的強類型機制、異常處理、廢料的自動收集等是java程序健壯性的重要保證。對指針的丟棄是java的明智選擇。java的安全檢查機制使得java更具健壯性。 5、java語言是安全的。java通常被用在網絡環境中,為此,java提供了一個安全機制以防惡意代碼的攻擊。除了java語言具有的許多安全特性以外,java對通過網絡下載的類具有一個安全防范機制(類classloader),如分配不同的名字空間以防替代本地的同
14、名類、字節代碼檢查,并提供安全管理機制(類securitymanager)讓java應用設置安全哨兵。 6、java語言是體系結構中立的。java程序(后綴為java的文件)在java平臺上被編譯為體系結構中立的字節碼格式(后綴為class的文件), 然后可以在實現這個java平臺的任何系統中運行。這種途徑適合于異構的網絡環境和軟件的分發。 7、java語言是可移植的。這種可移植性來源于體系結構中立性,另外,java還嚴格規定了各個基本數據類型的長度。java系統本身也具有很強的可移植性,java編譯器是用java實現的,java的運行環境是用ansi c實現的。 8、java語言是解釋型的。
15、如前所述,java程序在java平臺上被編譯為字節碼格式,然后可以在實現這個java平臺的任何系統中運行。在運行時,java平臺中的java解釋器對這些字節碼進行解釋執行,執行過程中需要的類在聯接階段被載入到運行環境中。 9、java是高性能的。與那些解釋型的高級腳本語言相比,java的確是高性能的。事實上,java的運行速度隨著jit(just-in-time)編譯器技術的發展越來越接近于c+。 10、java語言是多線程的。在java語言中,線程是一種特殊的對象,它必須由thread類或其子(孫)類來創建。通常有兩種方法來創建線程:其一,使用型構為thread(runnable) 的構造子
16、將一個實現了runnable接口的對象包裝成一個線程,其二,從thread類派生出子類并重寫run方法,使用該子類創建的對象即為線程。值得注意的是thread類已經實現了runnable接口,因此,任何一個線程均有它的run方法,而run方法中包含了線程所要運行的代碼。線程的活動由一組方法來控制。java語言支持多個線程的同時執行,并提供多線程之間的同步機制(關鍵字為synchronized)。 11、java語言是動態的。java語言的設計目標之一是適應于動態變化的環境。java程序需要的類能夠動態地被載入到運行環境,也可以通過網絡來載入所需要的類。這也有利于軟件的升級。另外,java中的類
17、有一個運行時刻的表示,能進行運行時刻的類型檢查。 java語言的優點1 java最初是為對家用電器進行集成控制而設計的一種語言,因此它必須簡單明了。java語言的簡單性主要體現在以下三個方面:1.java的風格類似于c+,因而c+程序員是非常熟悉的。從某種意義上講,java語言是c及c+語言的一個變種,因此,c+程序員可以很快就掌握java編程技術。2.java摒棄了c+中容易引發程序錯誤的地方,如指針和內存管理。3.java提供了豐富的類庫。2 面向對象可以說是java最重要的特性。java語言的設計完全是面向對象的,它不支持類似c語言那樣的面向過程的程序設計技術。java支持靜態和動態風格
18、的代碼繼承及重用。單從面向對象的特性來看,java類似于smalltalk,但其它特性、尤其是適用于分布式計算環境的特性遠遠超越了smalltalk。3 另外,為了建立java作為網絡的一個整體,java將它的程序編譯成一種結構中立的中間文件格式。只要有java運行系統的機器都能執行這種中間代碼?,F在,java運行系統有solaris2.4(sparc),win32系統(windows95和windowsnt)等.java源程序被編譯成一種高層次的與機器無關的byte-code格式語言,這種語言被設計在虛擬機上運行,由機器相關的運行調試器實現執行。2.2 關于android 2.2.1 and
19、roid構架android作為一個移動設備的平臺,其軟件層次結構包括了一個操作系統(os),中間件(middleware)和應用程序(application)。根據android的軟件框圖,其軟件層次結構自下而上分為以下幾個層次:圖2.2 android系統架構2.2.2 xul界面布局xul 是一種基于 xml 的語言,因此需要對 xml(特別是 xml 名稱空間)很熟悉。xul是英文“xml user interface language”的首字母縮寫。顧名思義,它是一種應用xml來描述使用者界面的標示語言。 2.2.3 android的activity組件activity,一般代表手機屏
20、幕的一屏,相當于瀏覽器的一個頁面。在activity中添加view,實現應用界面和用戶交互。一個應用程序一般由多個activity構成,這些activity之間可互相跳轉,可進行頁面間的數據傳遞。每個activity都有自己的生命周期。224 sqlite數據庫在android平臺上,集成了一個嵌入式關系型數據庫sqlite。sqlite是支持結構化查詢的輕量級數據庫,能很好得適應于移動設備的應用。android提供了一個名為sqlitedatabase的類,該類封裝了一些操作數據庫的api,使用該類可以完成對數據進行添加(create)、查詢(retrieve)、更新(update)和刪除(
21、delete)操作(這些操作簡稱為crud)。225 android 2d圖形編程 1、simple graphics in view:就是直接使用android已經實現的一些畫圖操作,比如說images,shapes,colors,pre-defined animation等等。這種方式只能畫靜態或者極為簡單的2d圖畫,對于實時性很強的動畫,高品質的游戲都是沒法實現的。2、canvas:首先我們要明白這個canvas是一個2d的概念,是在skia中定義的。也就是說在這個方式下還是說的畫2d圖形。三、系統開發環境及相關技術3.1 android開發環境介紹android的上層應用程序是用jav
22、a語言開發,同時還需要基于dalvik虛擬機,所以,google公司推薦使用主流的java繼承開發環境eclipse。只有eclipse還不夠,因為是使用java語言進行開發,還應該有由sun公司提供的java sdk(其中包括jre:java runtime environment)。此外,android的應用程序開發和java開發有較大區別的,所以還需要有google提供的android sdk。同時,還需要在eclipse安裝adt,為android開發提供開發工具的升級或者變更,是eclipse下開發工具的升級下載的工具。(1) java sdk(2) eclipse(3) andro
23、id sdk3.2 android開發平臺搭建android開發平臺搭建步驟:首先到/downloads/下載eclipse集成開發環境并且解壓,這里推薦下載java ee 集成版本,可以為平臺的搭建省下不少工作。接著再去 站點下載sdk后安裝,下載 sdk1.5后解壓。第一步下載工序就結束了。雙擊eclipse解壓后目錄中的eclipse.exe然后啟動,選擇eclipse菜單中的help- install new software- 選項卡上的available software,點擊右側的“add”輸入http:/dl- with”下拉菜單中選擇
24、剛才輸入的網址。過一會就會出現一個developer tools選項,勾上以后點擊next以后eclipse會自動網上查找android 開發工具插件,然后找到android ddms和android development tools,選中這兩個點擊finish,eclipse就會自動下載并安裝android插件了,最后會提示重啟eclipse。重啟后選擇eclipse菜單中的windows- preferences 在左側的android項目中sdk location中填入android sdk解壓后的目錄,然后點擊apply。 在windowsxp的系統變量中的path變量中添加一個值,
25、該值指向解壓后的android sdk目錄下的tools文件夾。四、游戲所需類的分析與實現4.1 游戲的框架簡介圖4.1 游戲的類框架1、啟動游戲,在planeactivity中會先進入加載界面processview,然后后臺加載歡迎界面welcomview,當加載完成后屏幕切換到歡迎界面,并啟動welcoeviewthread線程生成歡迎界面的動畫效果。2、當歡迎動畫播放完成后屏幕會停留在選擇狀態等待玩家操作。3、當玩家單擊“幫助”時將初始化幫助界面helpview并將其顯示出來。4、當玩家大幾“開始游戲”按鈕時,屏幕將顯示加載界面。后臺將初始化游戲界面gameview,在地圖信息類maps
26、中初始化此關卡中的所有敵機、變槍的道具、補血的道具等。5、初始化游戲界面的同時啟動gameviewbackgroundthread線程,以初始滾動游戲界面的背景圖片。6、當玩家發射炮彈或敵機發射炮彈時會創建bullet對象,并將其添加到已知的容器中。7、在游戲過程中如果需要顯示爆炸效果,會創建爆炸效果類explode以及explodethread類來渲染爆炸效果。8、游戲中所有類中使用的常量全部封裝到常量類constantutil類中。4.2 游戲界面的框架簡介圖4.2 游戲界面的類框架 1、gameview在初始化是會從maps讀取當前關卡的地圖信息,包括敵機、補血道具、換槍道具等。 2、在
27、界面初始化的同時,還需要啟動movethread線程、gameviewbackgroundthread線程、keythread線程以及explodethread線程。 3、gameview會在適當的時候從plane類中讀取主戰飛機的信息進行繪制。 4、當主戰飛機發射子彈時,會創建bullet對象并添加到指定容器中,此時movethread同樣需要定時改變子彈對象的位置。 5、在以上過程中,全部都需要pianeactivity的管理與constanutil的參與。4.3各個類的簡要介紹1、 共有類:activity的實現類planeactivity,該類是通過擴展基類activity實現的,是整
28、個游戲程序的入口。鍵盤監聽線程keythread,該類為手機鍵盤的監聽線程,每隔一段時間讀取一次鍵盤的狀態值,并根據當前鍵盤狀態做出相應的操作package wyf.ytl;public class keythread extends thread int span = 20;/ 睡眠的毫秒數int countmove = 0;/ 飛機移動的計數器int countfine = 0;/ 飛機發子彈的計數器int moven = 3;/ 每三次循環移動一下int finen = 5;/ 每五次循環發一次子彈planeactivity activity;/ activity的引用private b
29、oolean flag = true;/ 循環標志int action;/ 鍵盤狀態碼private boolean key_up = false;/ 向上鍵是否被按下private boolean key_down = false;/ 向下鍵是否被按下private boolean key_left = false;/ 向左的鍵被按下private boolean key_right = false;/ 向右的鍵被按下private boolean key_a = false;/ a的鍵被按下private boolean key_b = false;/ b的鍵被按下public keyth
30、read(planeactivity activity) / 構造器this.activity = activity;public void setflag(boolean flag) / 設置標志位this.flag = flag;public void run() / 重寫的方法while (flag) action = activity.action;/ 得到當前鍵盤的狀態碼if (action = 19) / 上key_up = true; else key_up = false;if (action = 20) / 下key_down = true; else key_down =
31、false;if (action = 21) / 左key_left = true; else key_left = false;if (action = 22) / 右key_right = true; else key_right = false;if (action = 29) / akey_a = true; else key_a = false;if (activity.gameview.status = 1 | activity.gameview.status = 3) if (countmove = 0) / 每moven次移動一次if (key_up = true) / 向上鍵
32、被按下/ 檢測在不碰到上邊界的情況下if (!(activity.gameview.plane.gety() - activity.gameview.plane.getspan() constantutil.screenheight- activity.gameview.plane.bitmap1.getheight() activity.gameview.plane.sety(activity.gameview.plane.gety()+ activity.gameview.plane.getspan();activity.gameview.plane.setdir(constantutil
33、.dir_down);if (key_left = true) / 向左鍵被按下if (!(activity.gameview.plane.getx() - activity.gameview.plane.getspan() constantutil.screenwidth- activity.gameview.plane.bitmap1.getwidth() activity.gameview.plane.setx(activity.gameview.plane.getx()+ activity.gameview.plane.getspan();/水平態if (key_right = fal
34、se & key_left = false& key_down = false & key_up = false) activity.gameview.plane.setdir(constantutil.dir_stop);/如果按下a鍵發射子彈if (countfine = 0) / 每finen發一次子彈if (key_a = true) / a鍵被按下activity.gameview.plane.fire();countmove = (countmove + 1) % moven;countfine = (countfine + 1) % finen;try thread.sleep(
35、span);/ 睡覺指定毫秒數 catch (exception e) e.printstacktrace();常量類constantutil,游戲中用到的所有的常量全部封裝到該類中,便于管理與維護。2、 輔助界面相關類歡迎界面welcomeview,該類為游戲歡迎界面的實現類,主要負責歡迎界面的繪制工作。歡迎界面的動畫實現類welcomeviewthread,該類是為welcomeview服務的線程類,主要負責歡迎界面中動畫的生成。幫助界面helpview,該類非常簡單,主要負責繪制幫助界面的相關圖片。加載界面processview,為了使游戲更加人性化,給玩家更好的體驗,在長時間加載某些資
36、源時,需要給出加載界面以提示玩家后臺加載的進度。勝利界面winview,該類為玩家順利過關后的恭喜過關界面。失敗界面failview,該類為主戰飛機死亡后顯示的失敗界面,在該界面中玩家可以選擇重新開始游戲或者退出游戲。3、 游戲界面相關類游戲主界面類gameview,該類為游戲菜單界面的實現類,負責界面繪制工作。背景滾動線程gameviewbackgroundthread,該類主要負責背景的滾動、敵機以及各種道具的出現。package wyf.ytl;/* * * 該類為背景滾動、物品出現的類 * */public class gameviewbackgroundthread extends
37、thread private int sleepspan = 100;/ 睡眠的毫秒數private int span = 3;/ 圖片移動的步長private boolean flag = true;/ 循環標志位gameview gameview;/ gameview的引用long touchtime = 0;/ 當前所到的時間public gameviewbackgroundthread(gameview gameview) / 構造器this.gameview = gameview;public void setflag(boolean flag) / 設置標記位this.flag =
38、 flag;public void run() while (flag) if (gameview.status = 1) / 游戲中時gameview.backgroundix -= span;if (gameview.backgroundix -constantutil.picturewidth) gameview.i = (gameview.i + 1) % constantutil.picturecount;gameview.backgroundix += constantutil.picturewidth;gameview.cloudx -= span;/ 移動云彩if (gamev
39、iew.cloudx -1000) gameview.cloudx = 1000;touchtime+;/ 時間自加/ 滾動地圖的時候try for (enemyplane ep : gameview.enemyplanes) / 到時間出現敵機if (ep.touchpoint = touchtime) ep.status = true;if (ep.type = 3) / 到關口了gameview.status = 3;for (life l : gameview.lifes) / 到時間出現血塊if (l.touchpoint = touchtime) l.status = true;f
40、or (changebullet cb : gameview.changebollets) / 到時間出現吃了改變槍的物體if (cb.touchpoint = touchtime) cb.status = true; catch (exception e) / 捕獲異常e.printstacktrace();/ 打印異常信息/ 一分多鐘后游戲結束if (touchtime = 641) / 到關口時this.flag = false;try thread.sleep(sleepspan);/ 睡眠 catch (exception e) / 捕獲異常e.printstacktrace();/
41、 打印異常信息地圖信息maps,該類包含著地圖的相關信息,例如敵機所有的移動路線、各個關卡中補血道具、換槍道具等。物體的移動線程類movethread,該線程負責除了我方主戰飛機外所有可移動物的移動。4、 情景相關類主戰飛機plane,該類為主戰飛機的封裝類,可由玩家控制其方向以及移動狀態。敵機enemyplane,該類為敵機的封裝類。子彈類bullet,子彈的封裝類,游戲中所有的子彈都為該類的對象。爆炸效果類explode,該類為爆炸效果的渲染類,負責在指定位置繪制爆炸效果。爆炸換幀線程explode,該類是為爆炸效果類服務的,當爆炸存在時定時為每個爆炸效果換幀。補血道具類life,該類為補
42、血道具類,當主戰飛機與該類對象碰撞時,會為主戰飛機增加一格血。換槍道具類changebullet,該類為換槍道具類,當主戰飛機與該類對象碰撞時,會增強主戰飛機所攜帶的武器。五、游戲界面展示1、主界面圖5.1主界面 2、游戲界面 圖5.2游戲界面3、射擊圖5.3射擊(子彈未升級)4、射擊(子彈升級后)圖5.4射擊(子彈升級后)5、子彈升級道具圖5.5子彈升級道具6、加血道具圖5.6加血道具7、擊中敵機圖5.7擊中敵機8、關卡boss 圖5.8關卡boss9、游戲結束 圖5.9游戲結束總結經過一段時間的努力,android平臺飛機大戰游戲終于完成了。由于對java濃厚的興趣引發了我對android
43、的好奇心,從一開始什么都不懂一直摸索著運用了很多高級技術完成了這個軟件。在這次畢業設計的制作過程中,我強烈感覺到自己知識的貧乏,和對以往學習過的知識掌握不夠。從最初的茫然,到慢慢的進入狀態,再到對思路逐漸的清晰,整個寫作過程難以用語言來表達。在這個過程中,我學會了很多知識,比如android環境的搭建、intent、activity、service、contentprovider、sqlite等,但我學會的最重要的一點是,利用現有的資源去解決問題,在圖書館、在網絡上尋找答案。雖然,這個軟件目前運行良好,但是我認為代碼的健壯行還很差,在整個工程的構思方面也不足,用戶操作界面還不夠靈活,這些問題還
44、需要今后逐一解決。與此同時,這個軟件還可以進一步擴展,例如雙人聯機合作,還有更多功能強大的道具和各式各樣的敵機。還需要更多的努力,做出讓用戶體驗更好的游戲。知識必須通過時間才能實現其價值!頭寫東西一位學會了,但真正用到的時候才發現是兩回事,所以我認為只有真正會用的時候才是真正的學會了。致謝本課題的設計和論文撰寫過程中,我的指導老師劉永偉老師給于了極大的幫助,為我提供了大量的相關資料。在完成課題設計的過程中,老師在總體設計思想上給予了許多重要的實際指導,拓展了我的思路,使得我得以完成了任務。在此,我對劉永偉老師的指導表示衷心的感謝。同時,我也衷心的感謝石家莊科技信息學院幾年來對我的精心栽培,良好
45、的校園環境、精良的師資隊伍、濃厚的校園文化都讓我深深懷念,都為我進入社會提供了莫大的幫助。參考文獻1 王正軍 著,java程序設計,北京:人民郵電出版社,2006年。2 王樹偉 著,java游戲編程基礎,北京:電子工業出版社,2005年。3榮欽科技編著. java游戲設計.北京:科海電子出版社4夏云龍編著.最新java使用手冊.電子工業出版社5 武瑩 彭文明編著java開發實用編程200例中國鐵道出版社2006年6 吳亞峰 蘇亞龍 編著android游戲開發寶典2.0 人民郵電出版社。7 夏少瓊.photoshop實戰教程-游刃有余. 暨南大學出版社. 2008年第1版8 (美)貝斯克.游戲開
46、發與制作.清華大學出版社.未著明出版時間9 黃維通 魯明羽著,java程序設計北京:清華大學出版社,2005年。附錄:游戲部分主要代碼1、planeactivity類的實現package wyf.ytl;import android.app.activity;/引入相關類import android.os.bundle;/引入相關類import android.os.handler;/引入相關類import android.os.looper;/引入相關類import android.os.message;/引入相關類import android.view.keyevent;/引入相關類imp
47、ort android.view.window;/引入相關類import android.view.windowmanager;/引入相關類public class planeactivity extends activity / 在任何一個主線程中都會自動生成一個looper(消息隊列)用來儲存發送的信息通過looper.loop();來調用儲存到looper中的信息int action = 0;/ 鍵盤的狀態,二進制表示 從左往右表示上下左右gameview gameview;/ gameview的引用welcomeview welcomeview;/ welcomeview的引用fail
48、view failview;/ 游戲失敗界面的引用helpview helpview;/ helpview的引用winview winview;/ 歡迎界面的引用processview processview;/ 進度條界面的引用boolean issound = true;/ 是否播放聲音handler myhandler = new handler() / 用來更新ui線程中的控件public void handlemessage(message msg) if (msg.what = 1) / 游戲失敗,玩家飛機墜毀if (gameview != null) gameview.keythread.setflag(false);/ 停止鍵盤監聽gameview.gamethread.setflag(false);gameview.movethread.setflag(false);gameview = null;initfailview();/ 切換到fialview else if (msg.what = 2) / 切換到gameviewif (welcomeview != null) welcomeview = null;/ 釋放歡迎界面if (processview != null) processview = null;/ 釋放加載界面processvie
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《SPC應用技術》學習課件
- 財經法規模擬考試題與答案(附解析)
- 2024年9月臨床醫學概論醫學檢驗技術練習題庫+參考答案解析
- 貨運火車站物流質量管理與客戶滿意度調查考核試卷
- 環評工程課件
- 一級建筑師輔導課件-建筑工程設計
- 智能門禁系統安全性能考核試卷
- 環境工程導論課件
- 2025年農產品加工專用設備項目合作計劃書
- 自然遺跡保護與野生動植物保護考核試卷
- 2024年學年八年級道德與法治下冊 第二單元 理解權利義務教案 新人教版
- 2024年學??照{租賃服務條款
- 《基于渦激振動的陣列式壓電風能采集系統》
- 《學前教育中幼兒創新思維培養的策略探究》開題報告5500字
- 戶外廣告資源租用協議范本
- 先兆性早產的護理
- 安全生產管理安全生產事故隱患排查手冊
- 臺球桿購買合同模板
- 《智慧體育競技科技助力新突破》演講課件
- 東北秧歌教案
- 2023年江蘇省南通市中考生物真題(解析版)
評論
0/150
提交評論