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

下載本文檔

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

文檔簡介

PAGEPAGE26畢業(yè)設(shè)計(jì)[論文]題目:JAVA的俄羅斯方塊界面設(shè)計(jì)與實(shí)現(xiàn)目錄摘要 4Abstract 51緒論 61.1開發(fā)背景 61.2俄羅斯方塊的開發(fā)意義 72可行性研究 82.1設(shè)計(jì)目的 92.2軟件問題定義 92.3可行性分析93需求分析 93.1引言 93.2方案論證 104游戲的開發(fā)與編譯 124.1編譯工具簡介 124.2硬件及軟件開發(fā)平臺 124.3功能設(shè)計(jì) 124.4系統(tǒng)功能模塊 134.5功能流程圖184.6詳細(xì)設(shè)計(jì)185游戲演示 215.1開始游戲 215.2系統(tǒng)測試245.3按鍵時(shí)間功能測試246結(jié)論 256.1問題256.2解決方法257參考文獻(xiàn) 26基于JAVA的俄羅斯方塊摘要在現(xiàn)今電子信息高速發(fā)展的時(shí)代,電子游戲已經(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)由四塊正方形的色塊組成,然后存儲在一個(gè)數(shù)組的四個(gè)元素中,計(jì)算機(jī)隨機(jī)產(chǎn)生不同七種類型的方塊,根據(jù)計(jì)算機(jī)時(shí)鐘控制它在一定的時(shí)間不停的產(chǎn)生,用戶根據(jù)鍵盤的四個(gè)方向鍵控制翻轉(zhuǎn)、向左、向右和向下操作,(控制鍵的實(shí)現(xiàn)是由鍵盤的方向鍵的事件處理實(shí)現(xiàn))。然后程序根據(jù)這七種方塊堆疊成各種不同的模型。論文描述了游戲的歷史,開發(fā)此游戲的環(huán)境,游戲開發(fā)的意義。遵循軟件工程的知識,從軟件問題定義開始,接著進(jìn)行可行性研究、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì),最后對軟件進(jìn)行了測試,整個(gè)開發(fā)過程貫穿軟件工程的知識體系。此次設(shè)計(jì)在MicrosoftWindowsXP系統(tǒng)下,以Java為開發(fā)關(guān)鍵詞:游戲設(shè)計(jì):算法,數(shù)組,事件BasedonLinuxRead-WritecontrolofEERROMAbstractIntherapiddevelopmentoftheelectronicinformationera,computergamehaspenetratedintopeople'sdailylife,becomeafamily-friendlyentertainment.Butwiththetechnologychangerapidlyingamedesign,sophisticateddesign,art,audioandsoftwareintegrationinaproduct,sonotalltheworldknows.Untiltoday,inthegamedesigninChinaarestillrare,butthegameindustryisthedevelopmentoffast,farmorethanthehomeelectric,automobileandothertraditionalindustries,butalsobecauseofthis,theeducationoftalentstraininggame,developmentisfarbehindtheindustry.Tetrisisayoungandold-Safegame,itconsistsoffoursquareblocksofcolor,andthenstoredinthefourelementofanarray,thecomputerrandomlygeneratedsevendifferenttypesofboxes,accordingtothecomputerclockcontrolitatacertaintime,theuseraccordingtothefourkeytocontrolthedirectionofturning,keyboardleft,rightanddownoperation,(controlkeyiscomposedofakeyboarddirectionkeyeventprocessing).Thentheprogrambasedonthesevenkindsofboxesstackedupintovariousmodel.Thispaperdescribesthehistoryofthedevelopmentofthegame,thegameenvironment,themeaningofgamedevelopment.Accordingtosoftwareengineeringknowledge,fromasoftwareproblemdefinition,feasibilitystudy,thendemandanalysis,outlinedesign,detaileddesign,finallyaftertesting,theentiredevelopmentprocessthroughoutthesoftwareengineeringbodyofknowledge.ThedesigninMicrosoftWindowsXPsystem,developedbyJavaKeywords:ARRAYINCIDENTALGORITHM引言游戲是人們活動(dòng)中一項(xiàng)非常重要的內(nèi)容,有人認(rèn)為如果哪一天人類對所有的游戲都失去興趣,恐怕世界的末日就要到了。電腦對游戲的貢獻(xiàn)有目共睹,現(xiàn)在摸過電腦的人很少有沒玩過電腦游戲的,喜歡游戲的人也很少有不玩電腦的。俄羅斯方塊是一款風(fēng)靡全球的電視游戲機(jī)和掌上游戲機(jī)游戲,它曾經(jīng)造成的轟動(dòng)與造成的經(jīng)濟(jì)價(jià)值可以說是游戲史上的一件大事。這款游戲最初是由蘇聯(lián)的游戲制作人AlexPajitnov制作的,它看似簡單但卻變化無窮,令人上癮。相信大多數(shù)用戶都還記得為它癡迷得茶不思飯不想的那個(gè)俄羅斯方塊時(shí)代。究其歷史,俄羅斯方塊最早還是出現(xiàn)在PC機(jī)上,而我國的用戶都是通過紅白機(jī)了解、喜歡上它的?,F(xiàn)在聯(lián)眾又將重新掀起這股讓人沉迷的俄羅斯方塊風(fēng)潮。對一般用戶來說,它的規(guī)則簡單,容易上手,且游戲過程變化無窮,而在"聯(lián)眾俄羅斯方塊"中,更有一些聯(lián)眾網(wǎng)絡(luò)游戲所獨(dú)有的魅力――有單機(jī)作戰(zhàn)與兩人在線對戰(zhàn)兩種模式,用戶可任選一種進(jìn)行游戲。網(wǎng)絡(luò)模式還增加了積分制,使用戶既能感受到游戲中的樂趣,也給用戶提供了一個(gè)展現(xiàn)自己高超技藝的場所。俄羅斯方塊游戲可以說是隨計(jì)算機(jī)的發(fā)展而發(fā)展,并不斷推陳出新演變出各種類似游戲,深受廣大玩家喜愛。這個(gè)游戲有的簡單,有的復(fù)雜,但其根本原理是一樣的都是對運(yùn)動(dòng)的方塊進(jìn)行組合,來訓(xùn)練玩家的反應(yīng)能力。談到游戲軟件,大多數(shù)人都認(rèn)為其神妙莫測,高不可及。而一般游戲軟件也確實(shí)具有很高的技術(shù)難度,隨著開發(fā)工具及軟件開發(fā)方法學(xué)的不斷發(fā)展,動(dòng)手開發(fā)游戲也不是十分困難的。俄羅斯方塊游戲是一種古老而又有趣的游戲,游戲軟件不計(jì)其數(shù),網(wǎng)上就有好多關(guān)于實(shí)現(xiàn)的復(fù)雜算法和設(shè)計(jì),其難度讓一般初學(xué)者望而卻步。本文利用數(shù)組作為方塊的數(shù)據(jù)結(jié)構(gòu),提出一種用JAVA語言實(shí)現(xiàn)的簡易方法,對初學(xué)者可仿此開發(fā)類似游戲,并了解游戲軟件的設(shè)計(jì)與開發(fā)過程。1.緒論1.1電子游戲及其分類電子游戲,也就是運(yùn)行在家用電腦、家用電子游戲機(jī)或是掌中寶游戲機(jī)及街機(jī)上的電子游戲程序。電子游戲是一種結(jié)合劇情故事、美術(shù)、音樂、動(dòng)畫、程序等技術(shù)于一身的互動(dòng)型娛樂軟件,涉及到多個(gè)行業(yè)。從電子游戲的分類來看,有著多種分類方式。傳統(tǒng)的游戲分類是按照游戲類型,將其分為即時(shí)戰(zhàn)略游戲、第一人稱射擊游戲、角色扮演游戲、策略型游戲等類別。根據(jù)游戲運(yùn)行平臺的不同,可將電子游戲分為游戲機(jī)游戲、單機(jī)版PC游戲、互動(dòng)電視游戲、在線游戲和手機(jī)游戲。此外,韓國政府將電子游戲業(yè)分為家用游戲機(jī)游戲、單機(jī)版PC游戲、網(wǎng)絡(luò)游戲和街機(jī)游戲四大類??紤]到中韓游戲業(yè)比較接近,論文采用韓國的分類標(biāo)準(zhǔn)。“網(wǎng)絡(luò)游戲”也就是人們一般所指的“在線游戲”,是指通過互聯(lián)網(wǎng)進(jìn)行的電腦游戲,通過人與人之間的互動(dòng)達(dá)到交流、娛樂和休閑的目的。在互聯(lián)網(wǎng)(局域網(wǎng))技術(shù)出現(xiàn)之前,電子游戲都可以歸于單機(jī)版游戲,即“人機(jī)對戰(zhàn)”游戲,或最多是雙人對戰(zhàn)游戲。而隨著互聯(lián)網(wǎng)技術(shù)的出現(xiàn),通過連接游戲服務(wù)器,上百、上千、乃至上萬的游戲玩家同時(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)今世界上不可缺少的精神糧食。1.2電子游戲發(fā)展現(xiàn)狀1.2.1電子游戲在國外的發(fā)展現(xiàn)狀電子游戲是最初產(chǎn)生于美國,1971年,一個(gè)還在MIT就讀的學(xué)生設(shè)計(jì)了世界上第一個(gè)業(yè)務(wù)用游戲機(jī),這個(gè)街機(jī)游戲的名字叫《電腦空間》??梢哉f時(shí)至今日,電子游戲仍然是外國的天下。美國至今仍是世界第一大游戲市場,它遵循的是以發(fā)行商為主的產(chǎn)業(yè)開發(fā)鏈模式,根據(jù)美國市場調(diào)查公司NPDGroup調(diào)查統(tǒng)計(jì),美國2004年游戲總銷售金額(包括家用、掌上型主機(jī)及軟件)為99億美元,占了全球游戲市場的45%。其中游戲軟件銷售的具體數(shù)字是:視頻游戲軟件的銷售額達(dá)52億美元(1.6億套),PC游戲軟件銷售額達(dá)11億美元(4500萬套),掌機(jī)游戲銷售額達(dá)10億美元(4230萬套)。2004年一共大約有2.48億套游戲售出。據(jù)估計(jì),美國每個(gè)家庭平均購買過2部游戲[3]。日本近20年來瘋狂賺電子游戲的錢。從上世紀(jì)60年代初的街機(jī),到六七十年代之間的家用游戲機(jī),再到八九十年代的掌上游戲機(jī),日本經(jīng)過30多年的耕耘,終于把電子游戲這棵“搖錢樹”,培育成第一時(shí)尚娛樂產(chǎn)業(yè),壟斷全球業(yè)界長達(dá)10余年。對于日本來說,電玩業(yè)已是國家經(jīng)濟(jì)的重要支柱之一,在GDP中占有1/5的舉足輕重地位。日本游戲業(yè)在最輝煌的1998年,曾經(jīng)占領(lǐng)全球電子游戲市場硬件90%以上,軟件50%以上。韓國號稱世界上網(wǎng)絡(luò)游戲產(chǎn)業(yè)最發(fā)達(dá)國家之一。迄今為止,國內(nèi)網(wǎng)絡(luò)游戲市場有超過60%的產(chǎn)品來自韓國游戲軟件開發(fā)商,韓國網(wǎng)絡(luò)游戲使國內(nèi)很多游戲運(yùn)營公司在游戲營銷市場或股票資本市場上獲得了巨大的成功。韓國游戲市場的發(fā)展不是偶然,韓國政府不僅給游戲產(chǎn)業(yè)以正確的定位和引導(dǎo),更是將其和本國經(jīng)濟(jì)發(fā)展緊密地聯(lián)系到一起,做了很多市場培育方面的工作。韓國政府認(rèn)識到,靠重型工業(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)。由文化觀光部出面組建韓國游戲支援中心,向韓國游戲產(chǎn)業(yè)提供從資金到技術(shù)上的多方面支援;成立游戲投資聯(lián)盟,政府每年向游戲產(chǎn)業(yè)投入的資金多達(dá)500億韓元,并為游戲企業(yè)提供長期的低息貸款;設(shè)立信息化基金和文化產(chǎn)業(yè)基金,為游戲產(chǎn)業(yè)服務(wù);對指定的風(fēng)險(xiǎn)企業(yè)實(shí)行各種稅制優(yōu)惠政策,減少甚至免除游戲企業(yè)的稅務(wù)負(fù)擔(dān);建設(shè)游戲產(chǎn)業(yè)基地以扶持中小游戲企業(yè)的發(fā)展;對從事游戲產(chǎn)業(yè)的高科技人才免除兩年的兵役。在韓國,從制作到運(yùn)營,一個(gè)網(wǎng)絡(luò)游戲公司起步門檻較低,主要得益于政府實(shí)行的援助計(jì)劃。此外,在有利的政策形勢下,韓國出現(xiàn)了眾多的游戲院校,一些原本不涉足此領(lǐng)域的大學(xué)也開設(shè)了游戲相關(guān)專業(yè)課程,以大力培養(yǎng)游戲?qū)I(yè)人才,從而為游戲生產(chǎn)提供了基礎(chǔ)保障。1.2.2電子游戲在國內(nèi)的發(fā)展現(xiàn)狀與電子游戲發(fā)達(dá)的國家相比,我國在電子游戲方面還存在比較大的差距。目前,我國游戲市場正處于發(fā)展階段,但市場上的游戲軟件主要來自日本、美國、韓國等地,但由本土游戲制作人開發(fā)創(chuàng)作的游戲正在高速增加,國產(chǎn)原創(chuàng)的游戲即將成為游戲的主流。中國的游戲產(chǎn)業(yè)經(jīng)過80年代初期臺灣廠商的探索至90年代,開始了自己的研發(fā)、發(fā)行的歷程,直至網(wǎng)絡(luò)游戲的風(fēng)行,讓中國的網(wǎng)絡(luò)游戲開始有了飛速的發(fā)展。1983年,智冠科技有限公司在中國臺灣成立,為全球第一家簽訂授權(quán)重制中文版產(chǎn)品代理銷售合約的公司,2000年智冠在臺灣股票上市,2002年其控股的中華網(wǎng)龍?jiān)谂_灣上市。1996年底,UBISOFT上海分公司暨上海育碧電腦軟件有限公司成立。同年,全球游戲軟件領(lǐng)軍企業(yè)EA在中國上海成立辦事處。1997年,由尚洋公司制作的《血獅》正式上市。1997年,北京新天地互動(dòng)多媒體技術(shù)有限公司成立,該公司引進(jìn)了《古墓麗影III》(TombRaiderIII)、《盟軍敢死隊(duì)》等著名歐美游戲,并在1999年在中國率先掀起“游戲軟件價(jià)格革命”,全面推行50元的價(jià)格體系,從此正版游戲價(jià)格開始貼近大眾消費(fèi)者。1999年,業(yè)內(nèi)估算中國電腦游戲市場(正版)約1.5億元人民幣。2000年,大陸華彩軟件代理發(fā)行第一款中文MMORPG《萬王之王》正式推出,該游戲于1999年在臺灣發(fā)行,由臺灣雷爵資訊(Lager)開發(fā)。也在2000年,繼《萬王之王》、《石器時(shí)代》、《網(wǎng)絡(luò)三國》在臺灣上市之后,游戲桔子推出了《天堂》,游戲桔子成立于1995年,1999年以《便利店》在臺灣奠定了地位?!短焯谩愤@款由韓國著名游戲公司Ncsoft研發(fā)的網(wǎng)絡(luò)游戲不但在本國大獲成功,也在臺灣再次奪冠。2001年初,北京華義在中國大陸地區(qū)正式推出了《石器時(shí)代》,華義國際股份有限公司于1993年在臺北成立,2001年在臺灣股票上市。《石器時(shí)代》成為大陸當(dāng)時(shí)最流行的網(wǎng)絡(luò)游戲。2001年,天人互動(dòng)軟件技術(shù)有限公司在北京成立。當(dāng)年與SEGA結(jié)成PC游戲業(yè)務(wù)的戰(zhàn)略合作關(guān)系,發(fā)行了《櫻花大戰(zhàn)Ⅱ》《文明Ⅲ》《無冬之夜》等經(jīng)典游戲,2002年,引進(jìn)在歐美網(wǎng)絡(luò)游戲《魔劍》(ShadowBane),這是首款在中國測試的歐美網(wǎng)絡(luò)游戲。2001年5月,“聯(lián)眾世界”經(jīng)過3年多的迅速成長,以同時(shí)在線17萬人、注冊用戶約1800萬的規(guī)模,成為當(dāng)時(shí)世界用戶數(shù)量第一的在線游戲網(wǎng)站。2005年1月21日,中央電視臺報(bào)道:我國網(wǎng)絡(luò)游戲產(chǎn)業(yè)當(dāng)年增加了50%,今后幾年都將以50%以上的速度增長;第一屆中國網(wǎng)絡(luò)游戲年會報(bào)道:中國國內(nèi)網(wǎng)絡(luò)游戲2004年規(guī)模達(dá)24.7億元,2009年規(guī)模將達(dá)到109.6億元。2.可行性研究2.1設(shè)計(jì)目的通過本游戲的設(shè)計(jì),綜合自己在校期間所學(xué)的理論知識,設(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)自身對j2se基礎(chǔ)知識的理解,提高自己的編程水平,從而達(dá)到理論與實(shí)踐相結(jié)合的目的。2.2軟件問題定義基本要求:本游戲開發(fā)的總體任務(wù)是實(shí)現(xiàn)游戲的可操作性,以及界面的美觀性。整個(gè)開發(fā)過程遵循軟件工程規(guī)范,采用JAVAGUI編程來實(shí)現(xiàn)界面以及事件的控制,用戶根據(jù)鍵盤的四個(gè)方向鍵控制翻轉(zhuǎn)、向左、向右和向下操作,通過菜單欄中的相應(yīng)菜單選項(xiàng)實(shí)現(xiàn)游戲的開始、結(jié)束、變換方塊、積分以及等級的功能。目標(biāo):通過本游戲的開發(fā),主要實(shí)現(xiàn)游戲的可操作性以及美觀性,同時(shí)使自己對JAVA語言的了解更進(jìn)一層,為將來的實(shí)際工作打下堅(jiān)實(shí)的基礎(chǔ)。條件、假定和限制:由于知識以及能力的限制,本游戲所實(shí)現(xiàn)的功能不夠強(qiáng)大,可對本游戲進(jìn)行改善,從而增強(qiáng)游戲的功能。可行性研究的方法:通過研究分析俄羅斯方塊所具備的能力及實(shí)現(xiàn)的方法、確定主體結(jié)構(gòu)。利用現(xiàn)階段我所能達(dá)到的能力,以最簡潔、最容易的辦法,邊開發(fā)邊測試邊修改,實(shí)現(xiàn)一個(gè)初級游戲軟件。評價(jià)尺度:由于本軟件是一個(gè)初級產(chǎn)品,對其要求不是太苛刻,所以能夠達(dá)到俄羅斯游戲的一般功能即可。2.3可行性分析技術(shù)可行性:開發(fā)本游戲的編程語言有多種,考慮到自身對語言的掌握程度,選擇JAVA語言進(jìn)行游戲的開發(fā),采用JAVAGUI編程來實(shí)現(xiàn)界面以及事件的控制。經(jīng)濟(jì)可行性:本游戲的開發(fā)旨在完成畢業(yè)設(shè)計(jì),不注重直接的經(jīng)濟(jì)效益和其后的發(fā)展方向,只在注重自身水平和能力的提高,對自身的經(jīng)濟(jì)要求也不高,只要有一臺能運(yùn)行相應(yīng)JAVA程序的電腦便可,所以不用考慮到經(jīng)濟(jì)問題。社會可行性:本游戲的開發(fā)主要為了完成畢業(yè)設(shè)計(jì),開發(fā)的主體是個(gè)人,不存在法律上的侵權(quán)行為,也不會為社會造成影響,這方面是完全可行的。3.需求分析3.1引言對軟件需求分析就是通過調(diào)查研究,建立系統(tǒng)的數(shù)據(jù)模型、功能模型、行為模型,用戶和開發(fā)人員在“系統(tǒng)必須做什么”這個(gè)問題上實(shí)現(xiàn)相互理解,達(dá)到共識,從而形成雙方認(rèn)可的軟件產(chǎn)品的需求規(guī)格說明書。這樣有益于提高軟件開發(fā)過程中的能見度,便于對軟件開發(fā)過程中的控制與管理,便于采用工程方法開發(fā)軟件,提高軟件的質(zhì)量,便于開發(fā)人員、維護(hù)人員、管理人員之間的交流、協(xié)作,并作為工作成果的原始依據(jù),并且在向潛在用戶傳遞軟件功能、性能需求,使其能夠判斷該軟件是否與自己的需求相關(guān)。3.2方案論證學(xué)?,F(xiàn)已開設(shè)的課程有C語言、C++,java,自己本身自學(xué)了Java,通過網(wǎng)上以及圖書館的資料,知道可以通過C,C++,VB,Delphi,Java實(shí)現(xiàn)俄羅斯方塊游戲的設(shè)計(jì)。下面簡單介紹下VB、C++、Java各自的優(yōu)點(diǎn):3.3.1VB的優(yōu)點(diǎn)全稱VisualBasic,它是以Basic語言作為其基本語言的一種可視化編程工具。在中國乃至全世界都能看到它的身影,它曾是在中國最為流行的編程工具,到現(xiàn)在還占據(jù)著非常重要的地位,對于它的好壞大家都有一定的了解,VB作為一種較早出現(xiàn)的開發(fā)程序以其容易學(xué)習(xí),開發(fā)效率較高,具有完善的幫助系統(tǒng)等優(yōu)點(diǎn)曾影響了好幾代編程人員,但是由于VB不具備跨平臺這個(gè)特性,從而也決定了VB在未來的軟件開發(fā)中將會逐漸地退出其歷史舞臺;它對組件技術(shù)的支持是基于COM和ActiveX,對于組件技術(shù)不斷完善發(fā)展的今天,它也顯出了它的落后性;同時(shí)VB在進(jìn)行系統(tǒng)底層開發(fā)的時(shí)候也是相對復(fù)雜的,調(diào)用API函數(shù)需聲明,調(diào)用不方便,不能進(jìn)行DDK編程,不可能深入Ring0編程,不能嵌套匯編;而且面向?qū)ο蟮奶匦圆?;網(wǎng)絡(luò)功能和數(shù)據(jù)庫功能也沒有非常突出的表現(xiàn),綜上所述,VB作為一種可視化的開發(fā)工具由于其本身的局限性,導(dǎo)致了它在未來軟件開發(fā)中逐步被其他工具所代替。3.3.2C++的優(yōu)點(diǎn)C++是對C語言的擴(kuò)充,擴(kuò)充的絕大部分來自著名語言中的最佳特性:從SIMULA67中吸取了類,從ALGOL68中吸取了運(yùn)算符一名多用、引用和在分程序中任何地方說明變量,綜合了Ada的類屬和Clu的模塊特點(diǎn),從BCPL中吸取異常處理,從BCPL中吸取了用//表示注釋。C++保持了C的緊湊、靈活、高效和易移植強(qiáng)的優(yōu)點(diǎn),它對數(shù)據(jù)抽象的支持主要在于類概念和機(jī)制,對面向?qū)ο箫L(fēng)范的支持主要通過虛擬函數(shù)。C++既有數(shù)據(jù)抽象和面向?qū)ο竽芰?,語言運(yùn)行性能高多,加上C語言的普及,而從C至C++的過渡較為平滑,以及C++與C的兼容程度可使數(shù)據(jù)巨大的C程序能方便地在C++環(huán)境中重用。盡管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)軟件。3.3.3Java的優(yōu)點(diǎn)(1)安全性Java是一種安全的網(wǎng)絡(luò)編程語言,不支持指針類型,一切對內(nèi)存的訪問都必須通過對象的實(shí)例來實(shí)現(xiàn)。這樣能夠防止他人使用欺騙手段訪問對象的私有成員,也能夠避免在指針操作中易產(chǎn)生的錯(cuò)誤。此外,Java的安全性體現(xiàn)在多個(gè)層次上:在編譯層,有語法檢查;在解釋層,有字節(jié)碼校驗(yàn)器,可進(jìn)行代碼段格式測試和規(guī)則檢查、訪問權(quán)限和類型轉(zhuǎn)換合法性檢查、操作數(shù)堆棧的上溢和下溢檢測、代碼參數(shù)類型合法性檢查等;在平臺層上,通過配置策略,可設(shè)定訪問資源域,無須區(qū)分本地或遠(yuǎn)程。(2)可移植性Java具備有很好的移植性,這主要得益于它與平臺無關(guān)的特性。同時(shí),Java的類庫中也實(shí)現(xiàn)了與平臺無關(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)都具有可移植性。(3)多線程機(jī)制Java具有多線程機(jī)制,這使得應(yīng)用程序能夠并行地執(zhí)行。它的同步機(jī)制也保證了對共享數(shù)據(jù)的共享操作,而且線程具有優(yōu)先級的機(jī)制,有助于分別使用不同線程完成特定行為,也提高了交互的實(shí)時(shí)響應(yīng)能力。Java的多線程技術(shù)使網(wǎng)上實(shí)時(shí)交互實(shí)現(xiàn)很容易,從而為解決網(wǎng)上大數(shù)量的客戶訪問提供了技術(shù)基礎(chǔ)。(4)跨平臺通常,在Windows下編寫的程序是不能直接拿到UNIX上運(yùn)行的,因?yàn)槌绦虻膱?zhí)行最終必須轉(zhuǎn)換成為計(jì)算機(jī)硬件的機(jī)器指令來執(zhí)行,專門為某種計(jì)算機(jī)硬件和操作系統(tǒng)編寫的程序是不能夠直接放到其他類型的計(jì)算機(jī)硬件上執(zhí)行的,至少要做移植工作。要想讓程序能夠在不同的計(jì)算機(jī)上運(yùn)行,就要求程序設(shè)計(jì)語言能夠跨越各種軟件和硬件平臺,而Java恰恰滿足了這一需求。Java編譯器能夠產(chǎn)生一種與計(jì)算機(jī)體系結(jié)構(gòu)無關(guān)的字節(jié)指令,只要安裝了Java虛擬機(jī),Java就可以在相應(yīng)的處理機(jī)上執(zhí)行。3.3.4方案的選擇面向?qū)ο蟮某绦蛟O(shè)計(jì)吸取了結(jié)構(gòu)化程序設(shè)計(jì)的先進(jìn)思想,并把它們同幾個(gè)支持用戶用新方法進(jìn)行程序設(shè)計(jì)的有力概念結(jié)合在一起。所有面向?qū)ο蟮某绦蛟O(shè)計(jì)語言一般都包含三個(gè)概念:封裝、多態(tài)性和繼承性。這種方法要求語言必須具備抽象、封裝、繼承和多態(tài)性這幾個(gè)關(guān)鍵要素。面向?qū)ο蟮某绦蛟O(shè)計(jì),是通過數(shù)據(jù)和代碼建立分塊的內(nèi)存區(qū)域,以便提供對程序進(jìn)行模塊化的一種程序設(shè)計(jì)方法,這些模塊可以被用作樣板,在需要時(shí)再建立其副本。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)存管理等措施,保證了Java程序運(yùn)行的可靠性。所以經(jīng)過再三比較了三種語言后,決定采用Java語言編寫俄羅斯方塊。4游戲的開發(fā)與編譯4.1編譯工具簡介Eclipse是一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具(JavaDevelopmentKit,JDK)。4.2硬件以及軟件開發(fā)平臺CPU:Intelcore2 T5870內(nèi)存:2G硬盤:250G操作系統(tǒng):MicrosoftWindows7JDK版本:jdk1.5.0_09Eclipse版本:eclipse-SDK-3.6.1-win324.3功能設(shè)計(jì)本項(xiàng)目是為了實(shí)現(xiàn)俄羅斯方塊的基本功能而設(shè)計(jì)的,基本能夠達(dá)到俄羅斯方塊的各種游戲性。項(xiàng)目需求分析如下:1)由方塊組成的不同的隨機(jī)圖形會從區(qū)域上方開始緩慢落下。2)玩家可以做的操作有:以90度為單位旋轉(zhuǎn)方每一格塊。以格子為單位左右移動(dòng)方塊,讓方塊加速落下。3)方塊移到區(qū)域最下方或是著地到其他方塊上無法移動(dòng)時(shí),就會固定在該處,而新的隨機(jī)圖形會出現(xiàn)在區(qū)域上方開始落下。4)當(dāng)區(qū)域中某一列橫向格子全部由方塊填滿,則該列會自動(dòng)消除并成為玩家的得分。當(dāng)固定的方塊堆到區(qū)域最上方,則游戲結(jié)束。4.4系統(tǒng)功能系統(tǒng)模塊俄羅斯方塊俄羅斯方塊游戲區(qū)游戲控制顯示玩家操作顯示操作結(jié)果分?jǐn)?shù)級數(shù)開始游戲提高級數(shù)減低級數(shù)游戲暫停退出游戲具體模塊劃分算法:1,主要板設(shè)計(jì),主面板為container其面積為600:*480,其下添加子面板gameCrc,ControlSrc,并且采用Gridlayout的布局方式,如下圖:TitlegameSrcControlSrcsds代碼如下:setSize(600,480);setLayout(newGridLayout(1,2));gameScr=newGameCanvas();gameScr.addKeyListener(gameScr);timer=newMyTimer(gameScr);timer.setDaemon(true);timer.start();timer.suspend();add(gameScr);PanelrightScr=newPanel();rightScr.setLayout(newGridLayout(2,1,0,30));rightScr.setSize(120,500);add(rightScr);gameSrc面板中包含15行和10列的小方塊,用于顯示內(nèi)容如圖ControlSrc中有5個(gè)功能模塊和2行顯示信息的模塊代碼如下://定義按鈕LevelUPButtonlevel_up_b=newButton("提高級數(shù)");level_up_b.setSize(newDimension(50,200));level_up_b.addActionListener(newCommand(Command.button_levelup,gameScr));//定義按鈕LevelDownButtonlevel_down_b=newButton("降低級數(shù)");level_down_b.setSize(newDimension(50,200));level_down_b.addActionListener(newCommand(Command.button_leveldown,gameScr));//定義按鈕LevelPauseButtonpause_b=newButton("游戲暫停");pause_b.setSize(newDimension(50,200));pause_b.addActionListener(newCommand(Command.button_pause,gameScr));//定義按鈕QuitButtonquit_b=newButton("退出游戲");quit_b.setSize(newDimension(50,200));quit_b.addActionListener(newCommand(Command.button_quit,gameScr));controlScr.add(play_b);controlScr.add(level_up_b);controlScr.add(level_down_b);controlScr.add(pause_b);controlScr.add(quit_b);setVisible(true);gameScr.requestFocus();}}4.5功能流程圖4.6詳細(xì)設(shè)計(jì)1.首先要隨機(jī)產(chǎn)生一個(gè)圖形2.圖形數(shù)據(jù)結(jié)構(gòu):定義一個(gè)方陣,共個(gè)小格。用“0”和“1”來表示每個(gè)方格是繪制還是空白,由此可以組合出多種圖形,如圖所示:其中圖一表示為{0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0}其中圖二表示為{0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0}其中圖三表示為{0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0}其中圖四表示為{0,0,0,0,0,1,0,1,0,1,1,0,0,0,1,0}方塊的旋轉(zhuǎn)是通過繪制4個(gè)方向的方塊,在不同旋轉(zhuǎn)角度顯示不同方向的方塊來完成的。所以程序要控制方塊的旋轉(zhuǎn)方向,只要控制顯示哪副圖就可以了。本游戲是用一個(gè)三維數(shù)組int[][][]shapes=newint[][][];作為存儲方塊的數(shù)據(jù)結(jié)構(gòu)來保存方塊的28種狀態(tài)的。代碼如下: publicfinalstaticint[][]STYLES={//共28種狀態(tài) {0x0f00,0x4444,0x0f00,0x4444},//長條型的四種狀態(tài) {0x04e0,0x0464,0x00e4,0x04c4},//'T'型的四種狀態(tài) {0x4620,0x6c00,0x4620,0x6c00},//反'Z'型的四種狀態(tài) {0x2640,0xc600,0x2640,0xc600},//'Z'型的四種狀態(tài) {0x6220,0x1700,0x2230,0x0740},//'7'型的四種狀態(tài) {0x6440,0x0e20,0x44c0,0x8e00},//反'7'型的四種狀態(tài) {0x0660,0x0660,0x0660,0x0660},//方塊的四種狀態(tài) };圖形的移動(dòng):圖形類Shape保存了自己的位置信息,用left表示圖形到左邊界的距離,top表示圖形到上邊界的距離,圖形移動(dòng)就是改變left和top的值。向上移動(dòng):top減1,向下移動(dòng):top加1,向左移動(dòng):left減1,向右移動(dòng):left加1。圖形的移動(dòng)分為圖形的自動(dòng)下落以及通過按鍵事件實(shí)現(xiàn)圖形的左移、右移以及加速下移。通過多線程ShapeDriver類來實(shí)現(xiàn)圖形的自動(dòng)下移,由于游戲中方塊的動(dòng)態(tài)性,每個(gè)方塊有一定的生命周期,所以選用線程來實(shí)現(xiàn)方塊。一個(gè)方塊用一個(gè)線程類對象實(shí)現(xiàn),該類繼承與Thread類,當(dāng)一個(gè)方塊出現(xiàn)時(shí)也就表示一個(gè)線程對象產(chǎn)生并開始運(yùn)行。通過對按鍵事件的響應(yīng),實(shí)現(xiàn)圖形的左移、右移以及加速下移。圖形的變形通過inttype=newRandom().nextInt(shapes.length);shape.setBody(shapes[type]);shape.setStatus(0);實(shí)現(xiàn)初始圖形的初始化,通過status=(status+1)%body.length;實(shí)現(xiàn)圖形的變形功能。判斷滿行及消行如果某一行沒有空白,則這一行就是滿行。滿的那行上面所有的行整體下移一行就是消除這個(gè)滿行。代碼如下:voiddeleteFullLine(){intfull_line_num=0;intk=0;for(inti=0;i<rowNum;i++){booleanisfull=true;L1:for(intj=0;j<columnNum;j++)if(scrArr[i][j]==0){k++;isfull=false;breakL1;}if(isfull)full_line_num++;if(k!=0&&k-1!=i&&!isfull)for(intj=0;j<columnNum;j++){if(scrArr[i][j]==0)drawUnit(k-1,j,0);elsedrawUnit(k-1,j,2);scrArr[k-1][j]=scrArr[i][j];}}for(inti=k-1;i<rowNum;i++){for(intj=0;j<columnNum;j++){drawUnit(i,j,0);scrArr[i][j]=0;}}ERS_Block.score+=full_line_num;ERS_Block.scoreField.setText(""+ERS_Block.score);}5.游戲演示5.1開始界面5.1.1點(diǎn)擊開始5.1.2按鍵的應(yīng)用:點(diǎn)提高等級速度加快5.2系統(tǒng)測試1.點(diǎn)擊“開始游戲”按鈕效果:游戲開始結(jié)果:正常2.點(diǎn)擊“提高級數(shù)”按鈕效果:下落速度加快結(jié)果:正常3.點(diǎn)擊“降低級數(shù)”按鈕效果:下落速度降低結(jié)果:正常4.點(diǎn)擊“游戲暫?!卑粹o效果:暫停結(jié)果:正常5.點(diǎn)擊“退出游戲”按鈕效果:游戲退出結(jié)果:正常5.3按鍵事件的功能測試1.方塊移動(dòng)測試游戲過程中,點(diǎn)擊“左、右、下”方向鍵輸出:方塊正常移動(dòng),不會移出邊界結(jié)果:正常2.方塊反轉(zhuǎn)測試游戲過程中,點(diǎn)擊向上方向鍵輸出:方塊無邊界和障礙物阻擋的情況下可反轉(zhuǎn)結(jié)果:正常3.當(dāng)方塊下落到最底面或與障礙物接觸時(shí)輸出:方塊成功堆砌在底部結(jié)果:正常4.當(dāng)出現(xiàn)滿行現(xiàn)象時(shí)輸出:所有滿行被消除,方塊依次下移結(jié)果:正常結(jié)論6.1問題寫程序的時(shí)候,由于對有些Java知識不懂,所以有些想要表達(dá)的意思無法用Java代碼準(zhǔn)確的表達(dá)出來,老是出錯(cuò)或者無法寫下去; 一開始,自己準(zhǔn)備的參考資料不足,無法在遇到問題時(shí)有效的利用參考資料解決,遇到不懂的問題和不會用程序語言表達(dá)的問題時(shí),只能留在那里,無法解決,結(jié)果問題最后越積越多,導(dǎo)致我無法再把程序?qū)懴氯ィ?一開始,對于老師布置的作業(yè)題目,我不太懂,無法進(jìn)行有效而且清晰的分析,自然也無法繼續(xù)下去寫程序了,耽誤了較多的時(shí)間; 對于要寫流程圖,一開始我并不懂是什么意思,也不知道怎么去寫。6.2解決方法 對于那些不懂的Java知識和不會寫的程序,我通過向同學(xué)尋求幫助和利用參考資料書,最終都解決了; 對于自己參考資料不足的缺點(diǎn),我在下課后,去了圖書館借閱有關(guān)方面的Java參考資料書,并且向同學(xué)借閱了他們所擁有的資料書,然后又利用自己的電腦上網(wǎng)查找了一些有關(guān)方面的參考知識,終于在最后解決了資料不足的缺點(diǎn); 對于不懂的題目,我也通過向多個(gè)同學(xué)進(jìn)行詢問,最終弄懂了老師布置的題目所要求的內(nèi)容; 至于流程圖,在我向同學(xué)詢問過,并且上網(wǎng)進(jìn)行了一番查找和咨詢后,也總算弄懂了流程圖的含義,并努力寫了出來。參考書目[美]克羅夫特著,彭暉譯.《Java游戲高級編程》.清華大學(xué)出版社.2005.《精通Java——JDK、數(shù)據(jù)庫系統(tǒng)開發(fā)、Web開發(fā)》《Java進(jìn)階教程》《零起點(diǎn)Java應(yīng)用編程》《Java程序設(shè)計(jì)應(yīng)用基礎(chǔ)教程》目錄摘要 4Abstract 51緒論 61.1開發(fā)背景 61.2俄羅斯方塊的開發(fā)意義 72可行性研究 82.1設(shè)計(jì)目的 92.2軟件問題定義 92.3可行性分析93需求分析 93.1引言 93.2方案論證 104游戲的開發(fā)與編譯 124.1編譯工具簡介 124.2硬件及軟件開發(fā)平臺 124.3功能設(shè)計(jì) 124.4系統(tǒng)功能模塊 134.5功能流程圖184.6詳細(xì)設(shè)計(jì)185游戲演示 215.1開始游戲 215.2系統(tǒng)測試245.3按鍵時(shí)間功能測試246結(jié)論 256.1問題256.2解決方法257參考文獻(xiàn) 26目錄TOC\o"1-2"\h\z\u第一章總論 1第一節(jié)項(xiàng)目名稱及承辦單位 1第二節(jié)研究工作的依據(jù)與范圍 2第三節(jié)簡要研究結(jié)論 3第四節(jié)主要經(jīng)濟(jì)技術(shù)指標(biāo) 5第二章項(xiàng)目提出的背景及必要性 7第一節(jié)項(xiàng)目提出的背景 7第二節(jié)項(xiàng)目建設(shè)的必要性 13第三章市場預(yù)測與需求分析 19第一節(jié)車用生物燃?xì)馐袌霭l(fā)展分析 19第二節(jié)有機(jī)肥市場分析 23第四章建設(shè)規(guī)模與產(chǎn)品方案 29第一節(jié)建設(shè)規(guī)模 29第二節(jié)產(chǎn)品方案 29第五章廠址選擇與建設(shè)條件 31第一節(jié)廠址方案 31第二節(jié)建設(shè)條件 32第六章工藝技術(shù)方案 40HYPERLINK\l"_To

溫馨提示

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

評論

0/150

提交評論