畢業(yè)設(shè)計(jì)--java的俄羅斯方塊界面設(shè)計(jì)與實(shí)現(xiàn)_第1頁
已閱讀1頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設(shè)計(jì)[論文]</b></p><p>  題目:JAVA的俄羅斯方塊界面設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  目 錄</b></p><p><b>  摘 要4</b></p><p>  Abstract5</p>

2、<p><b>  1緒論6</b></p><p><b>  1.1開發(fā)背景6</b></p><p>  1.2 俄羅斯方塊的開發(fā)意義7</p><p><b>  2 可行性研究8</b></p><p>  2.1 設(shè)計(jì)目的9</p>

3、<p>  2.2 軟件問題定義9</p><p>  2.3 可行性分析........................................................................................9 </p><p><b> 

4、 3 需求分析9</b></p><p><b>  3.1 引言9</b></p><p>  3.2 方案論證10</p><p>  4 游戲的開發(fā)與編譯12</p><p>  4.1 編譯工具簡介12</p><p>  4.2 硬件及軟件開發(fā)平臺(tái)12</p

5、><p>  4.3 功能設(shè)計(jì)12</p><p>  4.4 系統(tǒng)功能模塊13</p><p>  4.5 功能流程圖......................................................................................18</p><p>  4.6 詳細(xì)設(shè)計(jì).....

6、.....................................................................................18</p><p><b>  5 游戲演示21</b></p><p>  5.1 開始游戲21</p><p>  5.2 系統(tǒng)測試.................

7、.........................................................................24</p><p>  5.3 按鍵時(shí)間功能測試..........................................................................24</p><p><b>  6

8、結(jié)論25</b></p><p>  6.1問題....................................................................................................25 </p><p>  6.2解決方法...........................................

9、................................................25</p><p><b>  7 參考文獻(xiàn)26</b></p><p>  基于JAVA的俄羅斯方塊</p><p><b>  摘 要</b></p><p>  在現(xiàn)今電子信息高速發(fā)展的時(shí)代,

10、電子游戲已經(jīng)深入人們的日常生活,成為老少皆宜的娛樂方式。但是游戲設(shè)計(jì)結(jié)合了日新月異的技術(shù),在一個(gè)產(chǎn)品中整合了復(fù)雜的設(shè)計(jì)、藝術(shù)、聲音和軟件,所以并不是人人皆知。直到今天,在中國從事游戲設(shè)計(jì)的人仍然很少,但是游戲行業(yè)的發(fā)展之快,遠(yuǎn)超如家電、汽車等傳統(tǒng)行業(yè),也正因?yàn)槿绱?,游戲人才的教育、培養(yǎng)遠(yuǎn)落后于產(chǎn)業(yè)的發(fā)展。 俄羅斯方塊是個(gè)老幼皆宜的小游戲,它實(shí)現(xiàn)由四塊正方形的色塊組成,然后存儲(chǔ)在一個(gè)數(shù)組的四個(gè)元素中,計(jì)算機(jī)隨機(jī)產(chǎn)生不同七種類型的方塊,根據(jù)

11、計(jì)算機(jī)時(shí)鐘控制它在一定的時(shí)間不停的產(chǎn)生,用戶根據(jù)鍵盤的四個(gè)方向鍵控制翻轉(zhuǎn)、向左、向右和向下操作,(控制鍵的實(shí)現(xiàn)是由鍵盤的方向鍵的事件處理實(shí)現(xiàn))。然后程序根據(jù)這七種方塊堆疊成各種不同的模型。 論文描述了游戲的歷史,開發(fā)此游戲的環(huán)境,游戲開發(fā)的意義。遵循軟件工程的知識(shí),從軟件問題定義開始,接著進(jìn)行可行性研究、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì),最后對(duì)軟件進(jìn)行了測試,整個(gè)開發(fā)過程貫穿軟件工程的知識(shí)體系。 此次設(shè)計(jì)在Microsoft Windows

12、 XP系統(tǒng)下,以Java為開發(fā)</p><p>  關(guān)鍵詞:游戲設(shè)計(jì):算法,數(shù)組,事件</p><p>  Based on Linux Read-Write control of EERROM</p><p><b>  Abstract</b></p><p>  In the rapid development o

13、f the electronic information era, computer game has penetrated into people's daily life, become a family-friendly entertainment. But with the technology change rapidly in game design, sophisticated design, art, audio

14、 and software integration in a product, so not all the world knows. Until today, in the game design in China are still rare, but the game industry is the development of fast, far more than the home electric, automobile a

15、nd other traditional industries, but a</p><p>  Key words: ARRAY INCIDENT ALGORITHM</p><p><b>  引 言</b></p><p>  游戲是人們活動(dòng)中一項(xiàng)非常重要的內(nèi)容,有人認(rèn)為如果哪一天人類對(duì)所有的游戲都失去興趣,恐怕世界的末日就要

16、到了。電腦對(duì)游戲的貢獻(xiàn)有目共睹,現(xiàn)在摸過電腦的人很少有沒玩過電腦游戲的,喜歡游戲的人也很少有不玩電腦的。</p><p>  俄羅斯方塊是一款風(fēng)靡全球的電視游戲機(jī)和掌上游戲機(jī)游戲,它曾經(jīng)造成的轟動(dòng)與造成的經(jīng)濟(jì)價(jià)值可以說是游戲史上的一件大事。這款游戲最初是由蘇聯(lián)的游戲制作人Alex Pajitnov制作的,它看似簡單但卻變化無窮,令人上癮。相信大多數(shù)用戶都還記得為它癡迷得茶不思飯不想的那個(gè)俄羅斯方塊時(shí)代。究其歷史,

17、俄羅斯方塊最早還是出現(xiàn)在PC機(jī)上,而我國的用戶都是通過紅白機(jī)了解、喜歡上它的?,F(xiàn)在聯(lián)眾又將重新掀起這股讓人沉迷的俄羅斯方塊風(fēng)潮。對(duì)一般用戶來說,它的規(guī)則簡單,容易上手,且游戲過程變化無窮,而在"聯(lián)眾俄羅斯方塊"中,更有一些聯(lián)眾網(wǎng)絡(luò)游戲所獨(dú)有的魅力――有單機(jī)作戰(zhàn)與兩人在線對(duì)戰(zhàn)兩種模式,用戶可任選一種進(jìn)行游戲。網(wǎng)絡(luò)模式還增加了積分制,使用戶既能感受到游戲中的樂趣,也給用戶提供了一個(gè)展現(xiàn)自己高超技藝的場所。</p&g

18、t;<p>  俄羅斯方塊游戲可以說是隨計(jì)算機(jī)的發(fā)展而發(fā)展,并不斷推陳出新演變出各種類似游戲, 深受廣大玩家喜愛。這個(gè)游戲有的簡單, 有的復(fù)雜, 但其根本原理是一樣的都是對(duì)運(yùn)動(dòng)的方塊進(jìn)行組合, 來訓(xùn)練玩家的反應(yīng)能力。談到游戲軟件, 大多數(shù)人都認(rèn)為其神妙莫測, 高不可及。而一般游戲軟件也確實(shí)具有很高的技術(shù)難度, 隨著開發(fā)工具及軟件開發(fā)方法學(xué)的不斷發(fā)展, 動(dòng)手開發(fā)游戲也不是十分困難的。俄羅斯方塊游戲是一種古老而又有趣的游戲,

19、游戲軟件不計(jì)其數(shù), 網(wǎng)上就有好多關(guān)于實(shí)現(xiàn)的復(fù)雜算法和設(shè)計(jì), 其難度讓一般初學(xué)者望而卻步。本文利用數(shù)組作為方塊的數(shù)據(jù)結(jié)構(gòu),提出一種用JAVA語言實(shí)現(xiàn)的簡易方法, 對(duì)初學(xué)者可仿此開發(fā)類似游戲, 并了解游戲軟件的設(shè)計(jì)與開發(fā)過程。</p><p><b>  1.緒論</b></p><p>  1.1 電子游戲及其分類</p><p>  電子游戲

20、,也就是運(yùn)行在家用電腦、家用電子游戲機(jī)或是掌中寶游戲機(jī)及街機(jī)上的電子游戲程序。電子游戲是一種結(jié)合劇情故事、美術(shù)、音樂、動(dòng)畫、程序等技術(shù)于一身的互動(dòng)型娛樂軟件,涉及到多個(gè)行業(yè)。 </p><p>  從電子游戲的分類來看,有著多種分類方式。傳統(tǒng)的游戲分類是按照游戲類型,將其分為即時(shí)戰(zhàn)略游戲、第一人稱射擊游戲、角色扮演游戲、策略型游戲等類別。根據(jù)游戲運(yùn)行平臺(tái)的不同,可將電子游戲分為游戲機(jī)游戲、單機(jī)版PC 游戲、互動(dòng)電

21、視游戲、在線游戲和手機(jī)游戲。此外,韓國政府將電子游戲業(yè)分為家用游戲機(jī)游戲、單機(jī)版PC 游戲、網(wǎng)絡(luò)游戲和街機(jī)游戲四大類??紤]到中韓游戲業(yè)比較接近,論文采用韓國的分類標(biāo)準(zhǔn)?!熬W(wǎng)絡(luò)游戲”也就是人們一般所指的“在線游戲”,是指通過互聯(lián)網(wǎng)進(jìn)行的電腦游戲,通過人與人之間的互動(dòng)達(dá)到交流、娛樂和休閑的目的。在互聯(lián)網(wǎng)(局域網(wǎng))技術(shù)出現(xiàn)之前,電子游戲都可以歸于單機(jī)版游戲,即“人機(jī)對(duì)戰(zhàn)”游戲,或最多是雙人對(duì)戰(zhàn)游戲。而隨著互聯(lián)網(wǎng)技術(shù)的出現(xiàn),通過連接游戲服務(wù)器,

22、上百、上千、乃至上萬的游戲玩家同時(shí)連線娛樂成為了現(xiàn)實(shí),這就大大增加了游戲的互動(dòng)性、真實(shí)性,豐富了電子游戲的內(nèi)涵。從網(wǎng)絡(luò)游戲的分類來看,目前業(yè)界還沒有一個(gè)比較統(tǒng)一規(guī)范的分類。隨著計(jì)算機(jī)設(shè)備和網(wǎng)絡(luò)技術(shù)的發(fā)展,電子游戲在全球得到了迅猛的發(fā)展,取得了巨大的成功,已成為當(dāng)今世界上不可缺少的精神糧食。</p><p>  1.2 電子游戲發(fā)展現(xiàn)狀</p><p>  1.2.1 電子游戲在國外的發(fā)展現(xiàn)

23、狀</p><p>  電子游戲是最初產(chǎn)生于美國,1971年,一個(gè)還在MIT就讀的學(xué)生設(shè)計(jì)了世界上第一個(gè)業(yè)務(wù)用游戲機(jī),這個(gè)街機(jī)游戲的名字叫《電腦空間》??梢哉f時(shí)至今日,電子游戲仍然是外國的天下。</p><p>  美國至今仍是世界第一大游戲市場,它遵循的是以發(fā)行商為主的產(chǎn)業(yè)開發(fā)鏈模式,根據(jù)美國市場調(diào)查公司NPD Group調(diào)查統(tǒng)計(jì),美國2004年游戲總銷售金額(包括家用、掌上型主機(jī)及軟件

24、)為99億美元,占了全球游戲市場的45%。其中游戲軟件銷售的具體數(shù)字是:視頻游戲軟件的銷售額達(dá)52億美元(1.6億套),PC游戲軟件銷售額達(dá)11億美元(4500萬套),掌機(jī)游戲銷售額達(dá)10億美元(4230萬套)。2004年一共大約有2.48億套游戲售出。據(jù)估計(jì),美國每個(gè)家庭平均購買過2部游戲[3]。</p><p>  日本近20年來瘋狂賺電子游戲的錢。從上世紀(jì)60年代初的街機(jī),到六七十年代之間的家用游戲機(jī),再到

25、八九十年代的掌上游戲機(jī),日本經(jīng)過30多年的耕耘,終于把電子游戲這棵“搖錢樹”,培育成第一時(shí)尚娛樂產(chǎn)業(yè),壟斷全球業(yè)界長達(dá)10余年。對(duì)于日本來說,電玩業(yè)已是國家經(jīng)濟(jì)的重要支柱之一,在GDP中占有1/5的舉足輕重地位。日本游戲業(yè)在最輝煌的1998年,曾經(jīng)占領(lǐng)全球電子游戲市場硬件90%以上,軟件50%以上。</p><p>  韓國號(hào)稱世界上網(wǎng)絡(luò)游戲產(chǎn)業(yè)最發(fā)達(dá)國家之一。迄今為止,國內(nèi)網(wǎng)絡(luò)游戲市場有超過60%的產(chǎn)品來自韓國

26、游戲軟件開發(fā)商,韓國網(wǎng)絡(luò)游戲使國內(nèi)很多游戲運(yùn)營公司在游戲營銷市場或股票資本市場上獲得了巨大的成功。 韓國游戲市場的發(fā)展不是偶然,韓國政府不僅給游戲產(chǎn)業(yè)以正確的定位和引導(dǎo),更是將其和本國經(jīng)濟(jì)發(fā)展緊密地聯(lián)系到一起,做了很多市場培育方面的工作。韓國政府認(rèn)識(shí)到,靠重型工業(yè)來支撐全國經(jīng)濟(jì)的做法是片面的,于是將IT、娛樂產(chǎn)業(yè)視為新的經(jīng)濟(jì)增長點(diǎn),開始大力扶持。從那時(shí)起,科技含量極高而能源消耗極低的游戲制作及相關(guān)產(chǎn)業(yè)擔(dān)負(fù)起了“富國興邦”的重?fù)?dān)。由文化觀

27、光部出面組建韓國游戲支援中心,向韓國游戲產(chǎn)業(yè)提供從資金到技術(shù)上的多方面支援;成立游戲投資聯(lián)盟,政府每年向游戲產(chǎn)業(yè)投入的資金多達(dá)500億韓元,并為游戲企業(yè)提供長期的低息貸款;設(shè)立信息化基金和文化產(chǎn)業(yè)基金,為游戲產(chǎn)業(yè)服務(wù);對(duì)指定的風(fēng)險(xiǎn)企業(yè)實(shí)行各種稅制優(yōu)惠政策,減少甚至免除游戲企業(yè)的稅務(wù)負(fù)擔(dān);建設(shè)游戲產(chǎn)業(yè)基地以扶持中小游戲企業(yè)的發(fā)展;對(duì)從事游戲產(chǎn)業(yè)的高科技人才免除兩年的兵役。 在韓國,從制作到運(yùn)營,一個(gè)網(wǎng)絡(luò)游戲公司起步門檻較低,主要得益于政府

28、實(shí)行的援助計(jì)劃。此外,在有</p><p>  1.2.2 電子游戲在國內(nèi)的發(fā)展現(xiàn)狀</p><p>  與電子游戲發(fā)達(dá)的國家相比,我國在電子游戲方面還存在比較大的差距。目前,我國游戲市場正處于發(fā)展階段,但市場上的游戲軟件主要來自日本、美國、韓國等地,但由本土游戲制作人開發(fā)創(chuàng)作的游戲正在高速增加,國產(chǎn)原創(chuàng)的游戲即將成為游戲的主流。</p><p>  中國的游戲產(chǎn)業(yè)

29、經(jīng)過80年代初期臺(tái)灣廠商的探索至90年代,開始了自己的研發(fā)、發(fā)行的歷程,直至網(wǎng)絡(luò)游戲的風(fēng)行,讓中國的網(wǎng)絡(luò)游戲開始有了飛速的發(fā)展。 1983年,智冠科技有限公司在中國臺(tái)灣成立,為全球第一家簽訂授權(quán)重制中文版產(chǎn)品代理銷售合約的公司,2000年智冠在臺(tái)灣股票上市, 2002年其控股的中華網(wǎng)龍?jiān)谂_(tái)灣上市。</p><p>  1996年底,UBI SOFT上海分公司暨上海育碧電腦軟件有限公司成立。同年,全球游戲軟件領(lǐng)軍企

30、業(yè)EA在中國上海成立辦事處。1997年,由尚洋公司制作的《血獅》正式上市。 1997年,北京新天地互動(dòng)多媒體技術(shù)有限公司成立,該公司引進(jìn)了《古墓麗影III》(TombRaider III)、《盟軍敢死隊(duì)》等著名歐美游戲,并在1999年在中國率先掀起“游戲軟件價(jià)格革命”,全面推行50元的價(jià)格體系,從此正版游戲價(jià)格開始貼近大眾消費(fèi)者。 1999年,業(yè)內(nèi)估算中國電腦游戲市場(正版)約1.5億元人民幣。 2000年,大陸華彩軟件代理發(fā)行第一款中

31、文MMORPG《萬王之王》正式推出,該游戲于1999年在臺(tái)灣發(fā)行,由臺(tái)灣雷爵資訊(Lager)開發(fā)。也在2000年,繼《萬王之王》、《石器時(shí)代》、《網(wǎng)絡(luò)三國》在臺(tái)灣上市之后,游戲桔子推出了《天堂》,游戲桔子成立于1995年,1999年以《便利店》在臺(tái)灣奠定了地位?!短焯谩愤@款由韓國著名游戲公司Ncsoft研發(fā)的網(wǎng)絡(luò)游戲不但在本國大獲成功,也在臺(tái)灣再次奪冠。 2001年初,北京華義在中國大陸地區(qū)正式推出了《石器時(shí)代》,華義國際股份有限公司

32、于1993年在臺(tái)北成立,</p><p>  2005年1月21日,中央電視臺(tái)報(bào)道:我國網(wǎng)絡(luò)游戲產(chǎn)業(yè)當(dāng)年增加了50%,今后幾年都將以50%以上的速度增長;第一屆中國網(wǎng)絡(luò)游戲年會(huì)報(bào)道:中國國內(nèi)網(wǎng)絡(luò)游戲2004年規(guī)模達(dá)24.7億元,2009年規(guī)模將達(dá)到109.6億元。</p><p><b>  2.可行性研究</b></p><p><b&

33、gt;  2.1 設(shè)計(jì)目的</b></p><p>  通過本游戲的設(shè)計(jì),綜合自己在校期間所學(xué)的理論知識(shí),設(shè)計(jì)開發(fā)俄羅斯方塊游戲,使自己熟悉應(yīng)用系統(tǒng)的開發(fā)過程,培養(yǎng)獨(dú)立思考能力,檢驗(yàn)學(xué)習(xí)效果和動(dòng)手能力,初步掌握軟件工程的系統(tǒng)理論,初步掌握MVC這種設(shè)計(jì)模式,進(jìn)一步鞏固和加強(qiáng)自身對(duì)j2se基礎(chǔ)知識(shí)的理解,提高自己的編程水平,從而達(dá)到理論與實(shí)踐相結(jié)合的目的。</p><p>  2

34、.2 軟件問題定義</p><p>  基本要求:本游戲開發(fā)的總體任務(wù)是實(shí)現(xiàn)游戲的可操作性,以及界面的美觀性。整個(gè)開發(fā)過程遵循軟件工程規(guī)范,采用JAVA GUI編程來實(shí)現(xiàn)界面以及事件的控制,用戶根據(jù)鍵盤的四個(gè)方向鍵控制翻轉(zhuǎn)、向左、向右和向下操作,通過菜單欄中的相應(yīng)菜單選項(xiàng)實(shí)現(xiàn)游戲的開始、結(jié)束、變換方塊、積分以及等級(jí)的功能。</p><p>  目標(biāo):通過本游戲的開發(fā),主要實(shí)現(xiàn)游戲的可操作性

35、以及美觀性,同時(shí)使自己對(duì)JAVA語言的了解更進(jìn)一層,為將來的實(shí)際工作打下堅(jiān)實(shí)的基礎(chǔ)。</p><p>  條件、假定和限制:由于知識(shí)以及能力的限制,本游戲所實(shí)現(xiàn)的功能不夠強(qiáng)大,可對(duì)本游戲進(jìn)行改善,從而增強(qiáng)游戲的功能。</p><p>  可行性研究的方法:通過研究分析俄羅斯方塊所具備的能力及實(shí)現(xiàn)的方法、確定主體結(jié)構(gòu)。利用現(xiàn)階段我所能達(dá)到的能力,以最簡潔、最容易的辦法,邊開發(fā)邊測試邊修改,實(shí)

36、現(xiàn)一個(gè)初級(jí)游戲軟件。</p><p>  評(píng)價(jià)尺度:由于本軟件是一個(gè)初級(jí)產(chǎn)品,對(duì)其要求不是太苛刻,所以能夠達(dá)到俄羅斯游戲的一般功能即可。</p><p><b>  2.3 可行性分析</b></p><p>  技術(shù)可行性:開發(fā)本游戲的編程語言有多種,考慮到自身對(duì)語言的掌握程度,選擇JAVA語言進(jìn)行游戲的開發(fā),采用JAVA GUI編程來實(shí)現(xiàn)界

37、面以及事件的控制。</p><p>  經(jīng)濟(jì)可行性:本游戲的開發(fā)旨在完成畢業(yè)設(shè)計(jì),不注重直接的經(jīng)濟(jì)效益和其后的發(fā)展方向,只在注重自身水平和能力的提高,對(duì)自身的經(jīng)濟(jì)要求也不高,只要有一臺(tái)能運(yùn)行相應(yīng)JAVA程序的電腦便可,所以不用考慮到經(jīng)濟(jì)問題。</p><p>  社會(huì)可行性:本游戲的開發(fā)主要為了完成畢業(yè)設(shè)計(jì),開發(fā)的主體是個(gè)人,不存在法律上的侵權(quán)行為,也不會(huì)為社會(huì)造成影響,這方面是完全可行的

38、。</p><p><b>  3.需求分析</b></p><p><b>  3.1 引言</b></p><p>  對(duì)軟件需求分析就是通過調(diào)查研究,建立系統(tǒng)的數(shù)據(jù)模型、功能模型、行為模型,用戶和開發(fā)人員在“系統(tǒng)必須做什么”這個(gè)問題上實(shí)現(xiàn)相互理解,達(dá)到共識(shí),從而形成雙方認(rèn)可的軟件產(chǎn)品的需求規(guī)格說明書。這樣有益于提高軟

39、件開發(fā)過程中的能見度,便于對(duì)軟件開發(fā)過程中的控制與管理,便于采用工程方法開發(fā)軟件,提高軟件的質(zhì)量,便于開發(fā)人員、維護(hù)人員、管理人員之間的交流、協(xié)作,并作為工作成果的原始依據(jù),并且在向潛在用戶傳遞軟件功能、性能需求,使其能夠判斷該軟件是否與自己的需求相關(guān)。</p><p><b>  3.2 方案論證</b></p><p>  學(xué)?,F(xiàn)已開設(shè)的課程有C語言、C++,ja

40、va,自己本身自學(xué)了Java,通過網(wǎng)上以及圖書館的資料,知道可以通過C,C++,VB,Delphi,Java實(shí)現(xiàn)俄羅斯方塊游戲的設(shè)計(jì)。下面簡單介紹下VB、C++、Java各自的優(yōu)點(diǎn):</p><p>  3.3.1 VB的優(yōu)點(diǎn)</p><p>  全稱Visual Basic,它是以Basic語言作為其基本語言的一種可視化編程工具。在中國乃至全世界都能看到它的身影,它曾是在中國最為流行的編

41、程工具,到現(xiàn)在還占 據(jù)著非常重要的地位,對(duì)于它的好壞大家都有一定的了解,VB作為一種較早出現(xiàn)的開發(fā)程序以其容易學(xué)習(xí),開發(fā)效率較高,具有完善的幫助系統(tǒng)等優(yōu)點(diǎn)曾影響了好 幾代編程人員,但是由于VB不具備跨平臺(tái)這個(gè)特性,從而也決定了VB在未來的軟件開發(fā)中將會(huì)逐漸地退出其歷史舞臺(tái);它對(duì)組件技術(shù)的支持是基于COM和 ActiveX,對(duì)于組件技術(shù)不斷完善發(fā)展的今天,它也顯出了它的落后性;同時(shí)VB在進(jìn)行系統(tǒng)底層開發(fā)的時(shí)候也是相對(duì)復(fù)雜的,調(diào)用API函數(shù)

42、需聲明,調(diào)用 不方便,不能進(jìn)行DDK編程,不可能深入Ring0編程,不能嵌套匯編;而且面向?qū)ο蟮奶匦圆睿痪W(wǎng)絡(luò)功能和數(shù)據(jù)庫功能也沒有非常突出的表現(xiàn),綜上所 述,VB作為一種可視化的開發(fā)工具由于其本身的局限性,導(dǎo)致了它在未來軟件開發(fā)中逐步被其他工具所代替。</p><p>  3.3.2 C++的優(yōu)點(diǎn)</p><p>  C++是對(duì)C語言的擴(kuò)充,擴(kuò)充的絕大部分來自著名語言中的最佳特性:從SIM

43、ULA 67中吸取了類,從ALGOL 68中吸取了運(yùn)算符一名多用、引用和在分程序中任何地方說明變量,綜合了Ada的類屬和Clu的模塊特點(diǎn),從BCPL中吸取異常處理,從BCPL中吸取了用//表示注釋。</p><p>  C++保持了C的緊湊、靈活、高效和易移植強(qiáng)的優(yōu)點(diǎn),它對(duì)數(shù)據(jù)抽象的支持主要在于類概念和機(jī)制,對(duì)面向?qū)ο箫L(fēng)范的支持主要通過虛擬函數(shù)。C++既有數(shù)據(jù)抽象和面向?qū)ο竽芰?,語言運(yùn)行性能高多,加上C語言的普及

44、,而從C至C++的過渡較為平滑,以及C++與C的兼容程度可使數(shù)據(jù)巨大的C程序能方便地在C++環(huán)境中重用。</p><p>  盡管C++當(dāng)初的設(shè)計(jì)本意是幫助管理大型程序,但其用途并不僅限于此。C++的面向?qū)ο蟮奶匦钥捎行У赜糜趯?shí)際的程序設(shè)計(jì)工作。C++常常用于設(shè)計(jì)編輯器、數(shù)據(jù)庫、個(gè)人文件系統(tǒng)以及通訊程序等。而且,由于C++共享C的效率,所以用C++可以構(gòu)成很多高性能的系統(tǒng)軟件。</p><p&

45、gt;  3.3.3 Java的優(yōu)點(diǎn)</p><p><b>  (1) 安全性 </b></p><p>  Java是一種安全的網(wǎng)絡(luò)編程語言,不支持指針類型,一切對(duì)內(nèi)存的訪問都必須通過對(duì)象的實(shí)例來實(shí)現(xiàn)。這樣能夠防止他人使用欺騙手段訪問對(duì)象的私有成員,也能夠避免在指針操作中易產(chǎn)生的錯(cuò)誤。</p><p>  此外,Java的安全性體現(xiàn)在多個(gè)層

46、次上:在編譯層,有語法檢查;在解釋層,有字節(jié)碼校驗(yàn)器,可進(jìn)行代碼段格式測試和規(guī)則檢查、訪問權(quán)限和類型轉(zhuǎn)換合法性檢查、操作數(shù)堆棧的上溢和下溢檢測、代碼參數(shù)類型合法性檢查等;在平臺(tái)層上,通過配置策略,可設(shè)定訪問資源域,無須區(qū)分本地或遠(yuǎn)程。</p><p>  (2) 可移植性 </p><p>  Java具備有很好的移植性,這主要得益于它與平臺(tái)無關(guān)的特性。同時(shí),Java的類庫中也實(shí)現(xiàn)了與平

47、臺(tái)無關(guān)的接口,這使得這些類庫也能移植。同時(shí),Java編譯器主要是由Java本身來實(shí)現(xiàn)的,Java的運(yùn)行系統(tǒng)(解釋器)由標(biāo)準(zhǔn)C語言實(shí)現(xiàn),因而整個(gè)Java系統(tǒng)都具有可移植性。 </p><p>  (3) 多線程機(jī)制 </p><p>  Java具有多線程機(jī)制,這使得應(yīng)用程序能夠并行地執(zhí)行。它的同步機(jī)制也保證了對(duì)共享數(shù)據(jù)的共享操作,而且線程具有優(yōu)先級(jí)的機(jī)制,有助于分別使用不同線程完成特定行

48、為,也提高了交互的實(shí)時(shí)響應(yīng)能力。Java的多線程技術(shù)使網(wǎng)上實(shí)時(shí)交互實(shí)現(xiàn)很容易,從而為解決網(wǎng)上大數(shù)量的客戶訪問提供了技術(shù)基礎(chǔ)。</p><p><b>  (4) 跨平臺(tái)</b></p><p>  通常,在Windows下編寫的程序是不能直接拿到UNIX上運(yùn)行的,因?yàn)槌绦虻膱?zhí)行最終必須轉(zhuǎn)換成為計(jì)算機(jī)硬件的機(jī)器指令來執(zhí)行,專門為某種計(jì)算機(jī)硬件和操作系統(tǒng)編寫的程序是不能

49、夠直接放到其他類型的計(jì)算機(jī)硬件上執(zhí)行的,至少要做移植工作。要想讓程序能夠在不同的計(jì)算機(jī)上運(yùn)行,就要求程序設(shè)計(jì)語言能夠跨越各種軟件和硬件平臺(tái),而Java恰恰滿足了這一需求。Java編譯器能夠產(chǎn)生一種與計(jì)算機(jī)體系結(jié)構(gòu)無關(guān)的字節(jié)指令,只要安裝了Java虛擬機(jī),Java就可以在相應(yīng)的處理機(jī)上執(zhí)行。</p><p>  3.3.4 方案的選擇</p><p>  面向?qū)ο蟮某绦蛟O(shè)計(jì)吸取了結(jié)構(gòu)化程序設(shè)

50、計(jì)的先進(jìn)思想,并把它們同幾個(gè)支持用戶用新方法進(jìn)行程序設(shè)計(jì)的有力概念結(jié)合在一起。</p><p>  所有面向?qū)ο蟮某绦蛟O(shè)計(jì)語言一般都包含三個(gè)概念:封裝、多態(tài)性和繼承性。</p><p>  這種方法要求語言必須具備抽象、封裝、繼承和多態(tài)性這幾個(gè)關(guān)鍵要素。</p><p>  面向?qū)ο蟮某绦蛟O(shè)計(jì),是通過數(shù)據(jù)和代碼建立分塊的內(nèi)存區(qū)域,以便提供對(duì)程序進(jìn)行模塊化的一種程序設(shè)

51、計(jì)方法,這些模塊可以被用作樣板,在需要時(shí)再建立其副本。</p><p>  C++和Java在面向?qū)ο筮@方面比VB要強(qiáng),所以我排除了用VB做的可能性。但是C++為了與C語言兼容,其是包含了些面向過程的成分;Java除了C++中非面向過程的部分,其程序編寫過程就是設(shè)計(jì)、實(shí)現(xiàn)類,定義其屬性、行為的過程。還有Java特有的“沙箱”機(jī)制是其安全性的保障,同時(shí)它去除了C++中易造成的錯(cuò)誤指針,增加了自動(dòng)內(nèi)存管理等措施,保證

52、了Java程序運(yùn)行的可靠性。</p><p>  所以經(jīng)過再三比較了三種語言后,決定采用Java語言編寫俄羅斯方塊。</p><p><b>  4游戲的開發(fā)與編譯</b></p><p>  4.1 編譯工具簡介</p><p>  Eclipse 是一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是

53、一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具(Java Development Kit,JDK)。</p><p>  4.2 硬件以及軟件開發(fā)平臺(tái)</p><p>  CPU:Intel core2 T5870</p><p><b>  內(nèi)存:2G</b><

54、;/p><p><b>  硬盤:250G</b></p><p>  操作系統(tǒng):Microsoft Windows 7</p><p>  JDK版本:jdk1.5.0_09</p><p>  Eclipse版本:eclipse-SDK-3.6.1-win32</p><p><b> 

55、 4.3 功能設(shè)計(jì)</b></p><p>  本項(xiàng)目是為了實(shí)現(xiàn)俄羅斯方塊的基本功能而設(shè)計(jì)的,</p><p>  基本能夠達(dá)到俄羅斯方</p><p>  塊的各種游戲性。項(xiàng)目需求分析如下:</p><p>  1)由方塊組成的不同的隨機(jī)圖形會(huì)從區(qū)域上方開始緩慢落下。</p><p>  2)玩家可以做的

56、操作有:以90度為單位旋轉(zhuǎn)方每一格塊。以格子為單位左右移動(dòng)方塊,讓方塊加速落下。</p><p>  3)方塊移到區(qū)域最下方或是著地到其他方塊上無法移動(dòng)時(shí),</p><p>  就會(huì)固定在該處,而新的隨機(jī)圖形會(huì)出現(xiàn)在區(qū)域上方開始落下。</p><p>  4)當(dāng)區(qū)域中某一列橫向格子全部由方塊填滿,則該列會(huì)自動(dòng)消除并成為玩家的得</p><p>

57、;<b>  分。</b></p><p>  當(dāng)固定的方塊堆到區(qū)域最上方,則游戲結(jié)束。</p><p>  4.4 系統(tǒng)功能系統(tǒng)模塊</p><p><b>  具體模塊劃分算法:</b></p><p>  1,主要板設(shè)計(jì),主面板為container 其面積為600:*480,其下添加子面板ga

58、meCrc,ControlSrc,并且采用Gridlayout的布局方式,如下圖:</p><p>  代碼如下:setSize(600,480); </p><p>  setLayout(new GridLayout(1,2)); </p><p>  gameScr = new GameCanvas(); </p><p>  game

59、Scr.addKeyListener(gameScr); </p><p>  timer = new MyTimer(gameScr); </p><p>  timer.setDaemon(true); </p><p>  timer.start(); </p><p>  timer.suspend(); </p>&l

60、t;p>  add(gameScr); </p><p>  Panel rightScr = new Panel(); </p><p>  rightScr.setLayout(new GridLayout(2,1,0,30)); </p><p>  rightScr.setSize(120,500); </p><p>  ad

61、d(rightScr); </p><p>  gameSrc面板中包含15行和10列的小方塊,用于顯示內(nèi)容 如圖</p><p>  ControlSrc中有5個(gè)功能模塊 和2行顯示信息的模塊</p><p><b>  代碼如下:</b></p><p>  //定義按鈕Level UP </p>&l

62、t;p>  Button level_up_b = new Button("提高級(jí)數(shù)"); </p><p>  level_up_b.setSize(new Dimension(50,200)); </p><p>  level_up_b.addActionListener(new Command(Command.button_levelup,gameScr)

63、); </p><p>  //定義按鈕Level Down </p><p>  Button level_down_b =new Button("降低級(jí)數(shù)"); </p><p>  level_down_b.setSize(new Dimension(50,200)); </p><p>  level_down_b

64、.addActionListener(new Command(Command.button_leveldown,gameScr)); </p><p>  //定義按鈕Level Pause </p><p>  Button pause_b =new Button("游戲暫停"); </p><p>  pause_b.setSize(new

65、Dimension(50,200)); </p><p>  pause_b.addActionListener(new Command(Command.button_pause,gameScr)); </p><p>  //定義按鈕Quit </p><p>  Button quit_b = new Button("退出游戲"); <

66、/p><p>  quit_b.setSize(new Dimension(50,200)); </p><p>  quit_b.addActionListener(new Command(Command.button_quit,gameScr)); </p><p>  controlScr.add(play_b); </p><p>  c

67、ontrolScr.add(level_up_b); </p><p>  controlScr.add(level_down_b); </p><p>  controlScr.add(pause_b); </p><p>  controlScr.add(quit_b); </p><p>  setVisible(true); <

68、/p><p>  gameScr.requestFocus(); </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  4.5 功能流程圖</b></p><p><b>  4.6詳細(xì)設(shè)

69、計(jì)</b></p><p>  1.首先要隨機(jī)產(chǎn)生一個(gè)圖形</p><p><b>  2.</b></p><p><b>  圖形數(shù)據(jù)結(jié)構(gòu):</b></p><p>  定義一個(gè)4x4方陣,共16個(gè)小格。用“0”和“1”來表示每個(gè)方格是繪</p><p>  

70、制還是空白,由此可以組合出多種圖形,如圖所示: </p><p>  其中圖一表示為{0,0,0,0, 1,1,1,1 , 0,0,0,0, 0,0,0,0}</p><p>  其中圖二表示為{0,0,0,0, 0,1,1,0 , 0,1,1,0, 0,0,0,0}</p><p>  其中圖三表示為{0,0,0,0, 0,1,0,0 , 0,1,1,1, 0,0

71、,0,0}</p><p>  其中圖四表示為{0,0,0,0, 0,1,0,1 , 0,1,1,0, 0,0,1,0}</p><p>  方塊的旋轉(zhuǎn)是通過繪制4個(gè)方向的方塊,在不同旋轉(zhuǎn)角度顯示不同方向的方塊來完成的。所以程序要控制方塊的旋轉(zhuǎn)方向,只要控制顯示哪副圖就可以了。</p><p>  本游戲是用一個(gè)三維數(shù)組int[][][] shapes = new

72、int[][][];作為存儲(chǔ)方塊的數(shù)據(jù)結(jié)構(gòu)來保存方塊的28種狀態(tài)的。代碼如下:</p><p>  public final static int[][] STYLES = {// 共28種狀態(tài)</p><p>  { 0x0f00, 0x4444, 0x0f00, 0x4444 }, // 長條型的四種狀態(tài)</p><p>  { 0x04e0, 0x0464,

73、0x00e4, 0x04c4 }, // 'T'型的四種狀態(tài)</p><p>  { 0x4620, 0x6c00, 0x4620, 0x6c00 }, // 反'Z'型的四種狀態(tài)</p><p>  { 0x2640, 0xc600, 0x2640, 0xc600 }, // 'Z'型的四種狀態(tài)</p><p>  

74、{ 0x6220, 0x1700, 0x2230, 0x0740 }, // '7'型的四種狀態(tài)</p><p>  { 0x6440, 0x0e20, 0x44c0, 0x8e00 }, // 反'7'型的四種狀態(tài)</p><p>  { 0x0660, 0x0660, 0x0660, 0x0660 }, // 方塊的四種狀態(tài)</p><

75、;p><b>  };</b></p><p><b>  圖形的移動(dòng):</b></p><p>  圖形類Shape保存了自己的位置信息,用left表示圖形到左邊界的距離,top表示圖形到上邊界的距離,圖形移動(dòng)就是改變left和top的值。向上移動(dòng):top減1,向下移動(dòng):top加1,向左移動(dòng):left減1,向右移動(dòng):left加1。<

76、/p><p>  圖形的移動(dòng)分為圖形的自動(dòng)下落以及通過按鍵事件實(shí)現(xiàn)圖形的左移、右移以及加速下移。通過多線程ShapeDriver類來實(shí)現(xiàn)圖形的自動(dòng)下移,由于游戲中方塊的動(dòng)態(tài)性,每個(gè)方塊有一定的生命周期,所以選用線程來實(shí)現(xiàn)方塊。一個(gè)方塊用一個(gè)線程類對(duì)象實(shí)現(xiàn),該類繼承與Thread類,當(dāng)一個(gè)方塊出現(xiàn)時(shí)也就表示一個(gè)線程對(duì)象產(chǎn)生并開始運(yùn)行。通過對(duì)按鍵事件的響應(yīng),實(shí)現(xiàn)圖形的左移、右移以及加速下移。</p><

77、;p><b>  圖形的變形</b></p><p>  通過int type =newRandom().nextInt(shapes.length);shape.setBody(shapes[type]);</p><p>  shape.setStatus(0);實(shí)現(xiàn)初始圖形的初始化,通過status = (status + 1) % body.length

78、;實(shí)現(xiàn)圖形的變形功能。</p><p><b>  判斷滿行及消行</b></p><p>  如果某一行沒有空白,則這一行就是滿行。滿的那行上面所有的行整體下移一行就是消除這個(gè)滿行。代碼如下:void deleteFullLine(){ </p><p>  int full_line_num = 0; </p><p&g

79、t;  int k = 0; </p><p>  for (int i=0;i<rowNum;i++){ </p><p>  boolean isfull = true; </p><p>  L1:for(int j=0;j<columnNum;j++) </p><p>  if(scrArr[i][j] == 0){ &

80、lt;/p><p><b>  k++; </b></p><p>  isfull = false; </p><p>  break L1; </p><p><b>  } </b></p><p>  if(isfull) full_line_num++; </p&

81、gt;<p>  if(k!=0 && k-1!=i && !isfull) </p><p>  for(int j = 0; j < columnNum; j++){ </p><p>  if (scrArr[i][j] == 0) </p><p>  drawUnit(k-1,j,0); </p&g

82、t;<p><b>  else </b></p><p>  drawUnit(k-1,j,2); </p><p>  scrArr[k-1][j] = scrArr[i][j]; </p><p><b>  } </b></p><p><b>  } </b&

83、gt;</p><p>  for(int i = k-1 ;i < rowNum; i++){ </p><p>  for(int j = 0; j < columnNum; j++){ </p><p>  drawUnit(i,j,0); </p><p>  scrArr[i][j]=0; </p><

84、;p><b>  } </b></p><p><b>  } </b></p><p>  ERS_Block.score += full_line_num; </p><p>  ERS_Block.scoreField.setText(""+ERS_Block.score); </p&

85、gt;<p><b>  } </b></p><p><b>  5.游戲演示</b></p><p><b>  5.1開始界面</b></p><p>  5.1.1 點(diǎn)擊開始</p><p>  5.1.2 按鍵的應(yīng)用: 點(diǎn)提高等級(jí)速度加快</p&g

86、t;<p><b>  5.2 系統(tǒng)測試</b></p><p>  1.點(diǎn)擊“開始游戲” 按鈕</p><p><b>  效果:游戲開始</b></p><p><b>  結(jié)果:正常</b></p><p>  2.點(diǎn)擊“提高級(jí)數(shù)” 按鈕</p>

87、<p><b>  效果:下落速度加快</b></p><p><b>  結(jié)果:正常</b></p><p>  3.點(diǎn)擊“降低級(jí)數(shù)” 按鈕</p><p><b>  效果:下落速度降低</b></p><p><b>  結(jié)果:正常</b&g

88、t;</p><p>  4.點(diǎn)擊“游戲暫停” 按鈕</p><p><b>  效果:暫停</b></p><p><b>  結(jié)果:正常</b></p><p>  5.點(diǎn)擊“退出游戲” 按鈕</p><p><b>  效果:游戲退出</b><

89、;/p><p><b>  結(jié)果:正常</b></p><p>  5.3 按鍵事件的功能測試</p><p><b>  1.方塊移動(dòng)測試</b></p><p>  游戲過程中,點(diǎn)擊“左、右、下”方向鍵</p><p>  輸出:方塊正常移動(dòng),不會(huì)移出邊界</p>

90、<p><b>  結(jié)果:正常</b></p><p><b>  2.方塊反轉(zhuǎn)測試</b></p><p>  游戲過程中,點(diǎn)擊向上方向鍵</p><p>  輸出:方塊無邊界和障礙物阻擋的情況下可反轉(zhuǎn)</p><p><b>  結(jié)果:正常</b></p

91、><p>  3. 當(dāng)方塊下落到最底面或與障礙物接觸時(shí)</p><p>  輸出:方塊成功堆砌在底部</p><p><b>  結(jié)果:正常</b></p><p>  4.當(dāng)出現(xiàn)滿行現(xiàn)象時(shí)</p><p>  輸出:所有滿行被消除,方塊依次下移</p><p><b&g

92、t;  結(jié)果:正常</b></p><p><b>  結(jié)論</b></p><p><b>  6.1問題</b></p><p>  寫程序的時(shí)候,由于對(duì)有些Java知識(shí)不懂,所以有些想要表達(dá)的意思無法用Java代碼準(zhǔn)確的表達(dá)出來,老是出錯(cuò)或者無法寫下去;</p><p>  ?一

93、開始,自己準(zhǔn)備的參考資料不足,無法在遇到問題時(shí)有效的利用參考資料解決,遇到不懂的問題和不會(huì)用程序語言表達(dá)的問題時(shí),只能留在那里,無法解決,結(jié)果問題最后越積越多,導(dǎo)致我無法再把程序?qū)懴氯ィ?lt;/p><p>  ?一開始,對(duì)于老師布置的作業(yè)題目,我不太懂,無法進(jìn)行有效而且清晰的分析,自然也無法繼續(xù)下去寫程序了,耽誤了較多的時(shí)間;</p><p>  ?對(duì)于要寫流程圖,一開始我并不懂是什么意

94、思,也不知道怎么去寫。</p><p><b>  6.2解決方法?</b></p><p>  對(duì)于那些不懂的Java知識(shí)和不會(huì)寫的程序,我通過向同學(xué)尋求幫助和利用參考資料書,最終都解決了;</p><p>  ?對(duì)于自己參考資料不足的缺點(diǎn),我在下課后,去了圖書館借閱有關(guān)方面的Java參考資料書,并且向同學(xué)借閱了他們所擁有的資料書,然后又

95、利用自己的電腦上網(wǎng)查找了一些有關(guān)方面的參考知識(shí),終于在最后解決了資料不足的缺點(diǎn);</p><p>  ?對(duì)于不懂的題目,我也通過向多個(gè)同學(xué)進(jìn)行詢問,最終弄懂了老師布置的題目所要求的內(nèi)容;</p><p>  ?至于流程圖,在我向同學(xué)詢問過,并且上網(wǎng)進(jìn)行了一番查找和咨詢后,也總算弄懂了流程圖的含義,并努力寫了出來。</p><p><b>  參考書目&

96、lt;/b></p><p>  [美]克羅夫特著,彭暉譯.《Java游戲高級(jí)編程》.清華大學(xué)出版社.2005.</p><p>  《精通Java——JDK、數(shù)據(jù)庫系統(tǒng)開發(fā)、Web開發(fā)》</p><p>  《Java進(jìn)階教程》</p><p>  《零起點(diǎn)Java應(yīng)用編程》</p><p>  《Java程序

溫馨提示

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

評(píng)論

0/150

提交評(píng)論