




已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
畢業(yè)論文java俄羅斯方塊游戲摘 要在現(xiàn)今電子信息高速發(fā)展的時代,電子游戲已經(jīng)深入人們的日常生活,成為老少皆宜的娛樂方式。但是游戲設(shè)計結(jié)合了日新月異的技術(shù),在一個產(chǎn)品中整合了復雜的設(shè)計、藝術(shù)、聲音和軟件,所以并不是人人皆知。直到今天,在中國從事游戲設(shè)計的人仍然很少,但是游戲行業(yè)的發(fā)展之快,遠超如家電、汽車等傳統(tǒng)行業(yè),也正因為如此,游戲人廣西某報記者:隨著南寧私家車的增多,汽車投訴也不斷上升。在315消費者權(quán)益保護日當天,記者就接到幾位汽車消費者的投訴電話。有的反映,一些新的熱銷車型有加價銷售的現(xiàn)象;有的反映,買了保險,一旦出了問題,真正索賠時手續(xù)非常復雜;有的反映,遇著節(jié)假日辦理上牌入戶不方便。一劉姓出租車司機向記者反映,南寧汽車維修市場比較混亂。不同維修廠的配件和維修價格相差比較大。私家車主白先生對入戶、年檢時強制性收取的過路過橋費諸多項目和強制小轎車12年報廢表示不理解。私家車主李先生認為,汽車商家應在售前、售中、售后為消費者提供一個良好的消費環(huán)境,讓消費者買得放心,用得開心。原國家經(jīng)貿(mào)委發(fā)布的汽車工業(yè)“十五”(2000年至2005年)規(guī)劃:到2005年,汽車工業(yè)增加值將達1300億元,占國內(nèi)生產(chǎn)總值的百分之一。其中,轎車的發(fā)展速度將大大高于汽車工業(yè)的平均增長率。為此,中國政府將致力于汽車工業(yè)的戰(zhàn)略重組,優(yōu)化資源配置,培育出兩到三家主業(yè)突出、核心能力強、擁有自主知識產(chǎn)權(quán)、具有較強國際競爭力的大型企業(yè)集團。同時,中國政府將積極發(fā)展售價八萬元左右的經(jīng)濟型轎車。這種車型排量在一點三升以下,百公里油耗量達到國內(nèi)先進水平,能滿足中國家庭的需要。此外,中國將大力推進發(fā)展汽車工業(yè)的相關(guān)環(huán)境。據(jù)權(quán)威人士預計,到2005年,中國公路里程將增加至160萬公里,其中高速公路2.5萬公里。各地還將加大發(fā)展城市基礎(chǔ)設(shè)施的建設(shè),增加停車場地等交通配套設(shè)施。某報刊載某司機意見:市政建設(shè)就像等待大手術(shù)的病人,誰知道明天哪條路又要開腸破肚?聽說全市目前有14項在建重大工程,道路施工工地遍布中心城區(qū)和周圍主要地區(qū),對車輛通行影響很大。有時車開到交叉路口,主干道的交通全被施工工地阻斷,一堵就能堵上好幾個鐘頭。一位接受采訪的民警說:如果說道路工程建設(shè)是以一時堵車換來便捷交通的“短痛”,那么種種與交通文明不相協(xié)調(diào)的陋習則是更讓人難以忍受的“長痛”。順暢的交通環(huán)境是人車和諧,各行其道。大城市交通網(wǎng)絡(luò)本來就密集狹窄,私車投放量增大以后,道路發(fā)展又跟不上車輛增長,再加上市民亂穿馬路、騎車搶道等不文明行為比比皆是,就嚴重阻礙了排堵保暢的效率。當發(fā)達國家的人們開始過上“輪子上的生活”時,也曾面臨或正在面臨堵車的煩惱。對此,國外不同城市各自祭起種種招數(shù):紐約私車一律停郊外。到紐約曼哈頓的上班族,是從家里開車到市郊地鐵站或火車站,換乘地鐵或火車進入市區(qū),然后在市內(nèi)乘公共汽車、地鐵或出租車去上班、辦事。曼哈頓的許多街道,只有持特殊牌照的車輛才能停車上下貨和上下客,其他車輛不得停放。華盛頓不僅工商人士不能駕駛私車進入,聯(lián)邦政府官員也不得駕車出入華盛頓。官員們大多不住在華盛頓市內(nèi),而是住在與華盛頓特區(qū)相鄰的三個州的小鎮(zhèn)上。如果他們每天開幾十公里車到華盛頓上班,通向華盛頓的幾十條公路都會堵車。為此,聯(lián)邦政府擬定用公交工具接送代替?zhèn)€人開車的計劃。為了使官員們接受這種做法,政府答案在非上下班時間,誰要是有急事回家可由公交系統(tǒng)提供免費出租車乘坐。巴黎由于私家車急劇發(fā)展,到20世紀70年代初,巴黎的城市交通幾近癱瘓。于是,法國政府開始下大力氣重點優(yōu)先發(fā)展公共交通。如今,巴黎設(shè)置了480多條全天或部分時間禁止其他車輛使用的公共汽車專用道。對于小汽車,巴才的教育、培養(yǎng)遠落后于產(chǎn)業(yè)的發(fā)展。俄羅斯方塊是個老幼皆宜的小游戲,它實現(xiàn)由四塊正方形的色塊組成,然后存儲在一個數(shù)組的四個元素中,計算機隨機產(chǎn)生不同七種類型的方塊,根據(jù)計算機時鐘控制它在一定的時間不停的產(chǎn)生,用戶根據(jù)鍵盤的四個方向鍵控制翻轉(zhuǎn)、向左、向右和向下操作,(控制鍵的實現(xiàn)是由鍵盤的方向鍵的事件處理實現(xiàn))。然后程序根據(jù)這七種方塊堆疊成各種不同的模型。論文描述了游戲的歷史,開發(fā)此游戲的環(huán)境,游戲開發(fā)的意義。遵循軟件工程的知識,從軟件問題定義開始,接著進行可行性研究、需求分析、概要設(shè)計、詳細設(shè)計,最后對軟件進行了測試,整個開發(fā)過程貫穿軟件工程的知識體系。此次設(shè)計在Microsoft Windows XP系統(tǒng)下,以Java為開發(fā)語言,在eclipse開發(fā)平臺上進行游戲的設(shè)計與實踐。關(guān)鍵詞:游戲設(shè)計;算法;數(shù)組;事件引 言游戲是人們活動中一項非常重要的內(nèi)容,有人認為如果哪一天人類對所有的游戲都失去興趣,恐怕世界的末日就要到了。電腦對游戲的貢獻有目共睹,現(xiàn)在摸過電腦的人很少有沒玩過電腦游戲的,喜歡游戲的人也很少有不玩電腦的。俄羅斯方塊是一款風靡全球的電視游戲機和掌上游戲機游戲,它曾經(jīng)造成的轟動與造成的經(jīng)濟價值可以說是游戲史上的一件大事。這款游戲最初是由蘇聯(lián)的游戲制作人Alex Pajitnov制作的,它看似簡單但卻變化無窮,令人上癮。相信大多數(shù)用戶都還記得為它癡迷得茶不思飯不想的那個俄羅斯方塊時代。究其歷史,俄羅斯方塊最早還是出現(xiàn)在PC機上,而我國的用戶都是通過紅白機了解、喜歡上它的。現(xiàn)在聯(lián)眾又將重新掀起這股讓人沉迷的俄羅斯方塊風潮。對一般用戶來說,它的規(guī)則簡單,容易上手,且游戲過程變化無窮,而在聯(lián)眾俄羅斯方塊中,更有一些聯(lián)眾網(wǎng)絡(luò)游戲所獨有的魅力有單機作戰(zhàn)與兩人在線對戰(zhàn)兩種模式,用戶可任選一種進行游戲。網(wǎng)絡(luò)模式還增加了積分制,使用戶既能感受到游戲中的樂趣,也給用戶提供了一個展現(xiàn)自己高超技藝的場所。俄羅斯方塊游戲可以說是隨計算機的發(fā)展而發(fā)展,并不斷推陳出新演變出各種類似游戲, 深受廣大玩家喜愛。這個游戲有的簡單, 有的復雜, 但其根本原理是一樣的都是對運動的方塊進行組合, 來訓練玩家的反應能力。談到游戲軟件, 大多數(shù)人都認為其神妙莫測, 高不可及。而一般游戲軟件也確實具有很高的技術(shù)難度, 隨著開發(fā)工具及軟件開發(fā)方法學的不斷發(fā)展, 動手開發(fā)游戲也不是十分困難的。俄羅斯方塊游戲是一種古老而又有趣的游戲, 游戲軟件不計其數(shù), 網(wǎng)上就有好多關(guān)于實現(xiàn)的復雜算法和設(shè)計, 其難度讓一般初學者望而卻步。本文利用數(shù)組作為方塊的數(shù)據(jù)結(jié)構(gòu),提出一種用JAVA語言實現(xiàn)的簡易方法, 對初學者可仿此開發(fā)類似游戲, 并了解游戲軟件的設(shè)計與開發(fā)過程。1緒論1.1 電子游戲及其分類電子游戲,也就是運行在家用電腦、家用電子游戲機或是掌中寶游戲機及街機上的電子游戲程序。電子游戲是一種結(jié)合劇情故事、美術(shù)、音樂、動畫、程序等技術(shù)于一身的互動型娛樂軟件,涉及到多個行業(yè)。 從電子游戲的分類來看,有著多種分類方式。傳統(tǒng)的游戲分類是按照游戲類型,將其分為即時戰(zhàn)略游戲、第一人稱射擊游戲、角色扮演游戲、策略型游戲等類別。根據(jù)游戲運行平臺的不同,可將電子游戲分為游戲機游戲、單機版PC 游戲、互動電視游戲、在線游戲和手機游戲。此外,韓國政府將電子游戲業(yè)分為家用游戲機游戲、單機版PC 游戲、網(wǎng)絡(luò)游戲和街機游戲四大類??紤]到中韓游戲業(yè)比較接近,論文采用韓國的分類標準?!熬W(wǎng)絡(luò)游戲”也就是人們一般所指的“在線游戲”,是指通過互聯(lián)網(wǎng)進行的電腦游戲,通過人與人之間的互動達到交流、娛樂和休閑的目的。在互聯(lián)網(wǎng)(局域網(wǎng))技術(shù)出現(xiàn)之前,電子游戲都可以歸于單機版游戲,即“人機對戰(zhàn)”游戲,或最多是雙人對戰(zhàn)游戲。而隨著互聯(lián)網(wǎng)技術(shù)的出現(xiàn),通過連接游戲服務(wù)器,上百、上千、乃至上萬的游戲玩家同時連線娛樂成為了現(xiàn)實,這就大大增加了游戲的互動性、真實性,豐富了電子游戲的內(nèi)涵。從網(wǎng)絡(luò)游戲的分類來看,目前業(yè)界還沒有一個比較統(tǒng)一規(guī)范的分類。隨著計算機設(shè)備和網(wǎng)絡(luò)技術(shù)的發(fā)展,電子游戲在全球得到了迅猛的發(fā)展,取得了巨大的成功,已成為當今世界上不可缺少的精神糧食。1.2 電子游戲發(fā)展現(xiàn)狀1.2.1 電子游戲在國外的發(fā)展現(xiàn)狀電子游戲是最初產(chǎn)生于美國,1971年,一個還在MIT就讀的學生設(shè)計了世界上第一個業(yè)務(wù)用游戲機,這個街機游戲的名字叫電腦空間??梢哉f時至今日,電子游戲仍然是外國的天下。美國至今仍是世界第一大游戲市場,它遵循的是以發(fā)行商為主的產(chǎn)業(yè)開發(fā)鏈模式,根據(jù)美國市場調(diào)查公司NPD Group調(diào)查統(tǒng)計,美國2004年游戲總銷售金額(包括家用、掌上型主機及軟件)為99億美元,占了全球游戲市場的45%。其中游戲軟件銷售的具體數(shù)字是:視頻游戲軟件的銷售額達52億美元(1.6億套),PC游戲軟件銷售額達11億美元(4500萬套),掌機游戲銷售額達10億美元(4230萬套)。2004年一共大約有2.48億套游戲售出。據(jù)估計,美國每個家庭平均購買過2部游戲3。日本近20年來瘋狂賺電子游戲的錢。從上世紀60年代初的街機,到六七十年代之間的家用游戲機,再到八九十年代的掌上游戲機,日本經(jīng)過30多年的耕耘,終于把電子游戲這棵“搖錢樹”,培育成第一時尚娛樂產(chǎn)業(yè),壟斷全球業(yè)界長達10余年。對于日本來說,電玩業(yè)已是國家經(jīng)濟的重要支柱之一,在GDP中占有1/5的舉足輕重地位。日本游戲業(yè)在最輝煌的1998年,曾經(jīng)占領(lǐng)全球電子游戲市場硬件90%以上,軟件50以上。韓國號稱世界上網(wǎng)絡(luò)游戲產(chǎn)業(yè)最發(fā)達國家之一。迄今為止,國內(nèi)網(wǎng)絡(luò)游戲市場有超過60%的產(chǎn)品來自韓國游戲軟件開發(fā)商,韓國網(wǎng)絡(luò)游戲使國內(nèi)很多游戲運營公司在游戲營銷市場或股票資本市場上獲得了巨大的成功。 韓國游戲市場的發(fā)展不是偶然,韓國政府不僅給游戲產(chǎn)業(yè)以正確的定位和引導,更是將其和本國經(jīng)濟發(fā)展緊密地聯(lián)系到一起,做了很多市場培育方面的工作。韓國政府認識到,靠重型工業(yè)來支撐全國經(jīng)濟的做法是片面的,于是將、娛樂產(chǎn)業(yè)視為新的經(jīng)濟增長點,開始大力扶持。從那時起,科技含量極高而能源消耗極低的游戲制作及相關(guān)產(chǎn)業(yè)擔負起了“富國興邦”的重擔。由文化觀光部出面組建韓國游戲支援中心,向韓國游戲產(chǎn)業(yè)提供從資金到技術(shù)上的多方面支援;成立游戲投資聯(lián)盟,政府每年向游戲產(chǎn)業(yè)投入的資金多達億韓元,并為游戲企業(yè)提供長期的低息貸款;設(shè)立信息化基金和文化產(chǎn)業(yè)基金,為游戲產(chǎn)業(yè)服務(wù);對指定的風險企業(yè)實行各種稅制優(yōu)惠政策,減少甚至免除游戲企業(yè)的稅務(wù)負擔;建設(shè)游戲產(chǎn)業(yè)基地以扶持中小游戲企業(yè)的發(fā)展;對從事游戲產(chǎn)業(yè)的高科技人才免除兩年的兵役。 在韓國,從制作到運營,一個網(wǎng)絡(luò)游戲公司起步門檻較低,主要得益于政府實行的援助計劃。此外,在有利的政策形勢下,韓國出現(xiàn)了眾多的游戲院校,一些原本不涉足此領(lǐng)域的大學也開設(shè)了游戲相關(guān)專業(yè)課程,以大力培養(yǎng)游戲?qū)I(yè)人才,從而為游戲生產(chǎn)提供了基礎(chǔ)保障。1.2.2 電子游戲在國內(nèi)的發(fā)展現(xiàn)狀與電子游戲發(fā)達的國家相比,我國在電子游戲方面還存在比較大的差距。目前,我國游戲市場正處于發(fā)展階段,但市場上的游戲軟件主要來自日本、美國、韓國等地,但由本土游戲制作人開發(fā)創(chuàng)作的游戲正在高速增加,國產(chǎn)原創(chuàng)的游戲即將成為游戲的主流。中國的游戲產(chǎn)業(yè)經(jīng)過80年代初期臺灣廠商的探索至90年代,開始了自己的研發(fā)、發(fā)行的歷程,直至網(wǎng)絡(luò)游戲的風行,讓中國的網(wǎng)絡(luò)游戲開始有了飛速的發(fā)展。 1983年,智冠科技有限公司在中國臺灣成立,為全球第一家簽訂授權(quán)重制中文版產(chǎn)品代理銷售合約的公司,2000年智冠在臺灣股票上市, 2002年其控股的中華網(wǎng)龍在臺灣上市。1996年底,UBI SOFT上海分公司暨上海育碧電腦軟件有限公司成立。同年,全球游戲軟件領(lǐng)軍企業(yè)EA在中國上海成立辦事處。1997年,由尚洋公司制作的血獅正式上市。 1997年,北京新天地互動多媒體技術(shù)有限公司成立,該公司引進了古墓麗影III(TombRaider III)、盟軍敢死隊等著名歐美游戲,并在1999年在中國率先掀起“游戲軟件價格革命”,全面推行50元的價格體系,從此正版游戲價格開始貼近大眾消費者。 1999年,業(yè)內(nèi)估算中國電腦游戲市場(正版)約1.5億元人民幣。 2000年,大陸華彩軟件代理發(fā)行第一款中文MMORPG萬王之王正式推出,該游戲于1999年在臺灣發(fā)行,由臺灣雷爵資訊(Lager)開發(fā)。也在2000年,繼萬王之王、石器時代、網(wǎng)絡(luò)三國在臺灣上市之后,游戲桔子推出了天堂,游戲桔子成立于1995年,1999年以便利店在臺灣奠定了地位。天堂這款由韓國著名游戲公司Ncsoft研發(fā)的網(wǎng)絡(luò)游戲不但在本國大獲成功,也在臺灣再次奪冠。 2001年初,北京華義在中國大陸地區(qū)正式推出了石器時代,華義國際股份有限公司于1993年在臺北成立,2001年在臺灣股票上市。石器時代成為大陸當時最流行的網(wǎng)絡(luò)游戲。2001年,天人互動軟件技術(shù)有限公司在北京成立。當年與SEGA結(jié)成PC游戲業(yè)務(wù)的戰(zhàn)略合作關(guān)系,發(fā)行了櫻花大戰(zhàn)文明無冬之夜等經(jīng)典游戲,2002年,引進在歐美網(wǎng)絡(luò)游戲魔劍(Shadow Bane),這是首款在中國測試的歐美網(wǎng)絡(luò)游戲。 2001年5月,“聯(lián)眾世界”經(jīng)過3年多的迅速成長,以同時在線17萬人、注冊用戶約1800萬的規(guī)模,成為當時世界用戶數(shù)量第一的在線游戲網(wǎng)站。2005年1月21日,中央電視臺報道:我國網(wǎng)絡(luò)游戲產(chǎn)業(yè)當年增加了50%,今后幾年都將以50%以上的速度增長;第一屆中國網(wǎng)絡(luò)游戲年會報道:中國國內(nèi)網(wǎng)絡(luò)游戲2004年規(guī)模達24.7億元,2009年規(guī)模將達到109.6億元。 2可行性研究2.1 設(shè)計目的通過本游戲的設(shè)計,綜合自己在校期間所學的理論知識,設(shè)計開發(fā)俄羅斯方塊游戲,使自己熟悉應用系統(tǒng)的開發(fā)過程,培養(yǎng)獨立思考能力,檢驗學習效果和動手能力,初步掌握軟件工程的系統(tǒng)理論,初步掌握MVC這種設(shè)計模式,進一步鞏固和加強自身對j2se基礎(chǔ)知識的理解,提高自己的編程水平,從而達到理論與實踐相結(jié)合的目的。2.2 軟件問題定義基本要求:本游戲開發(fā)的總體任務(wù)是實現(xiàn)游戲的可操作性,以及界面的美觀性。整個開發(fā)過程遵循軟件工程規(guī)范,采用JAVA GUI編程來實現(xiàn)界面以及事件的控制,用戶根據(jù)鍵盤的四個方向鍵控制翻轉(zhuǎn)、向左、向右和向下操作,通過菜單欄中的相應菜單選項實現(xiàn)游戲的開始、結(jié)束、變換方塊、積分以及等級的功能。目標:通過本游戲的開發(fā),主要實現(xiàn)游戲的可操作性以及美觀性,同時使自己對JAVA語言的了解更進一層,為將來的實際工作打下堅實的基礎(chǔ)。條件、假定和限制:由于知識以及能力的限制,本游戲所實現(xiàn)的功能不夠強大,可對本游戲進行改善,從而增強游戲的功能??尚行匝芯康姆椒ǎ和ㄟ^研究分析俄羅斯方塊所具備的能力及實現(xiàn)的方法、確定主體結(jié)構(gòu)。利用現(xiàn)階段我所能達到的能力,以最簡潔、最容易的辦法,邊開發(fā)邊測試邊修改,實現(xiàn)一個初級游戲軟件。評價尺度:由于本軟件是一個初級產(chǎn)品,對其要求不是太苛刻,所以能夠達到俄羅斯游戲的一般功能即可。2.3 可行性分析 技術(shù)可行性:開發(fā)本游戲的編程語言有多種,考慮到自身對語言的掌握程度,選擇JAVA語言進行游戲的開發(fā),采用JAVA GUI編程來實現(xiàn)界面以及事件的控制。 經(jīng)濟可行性:本游戲的開發(fā)旨在完成畢業(yè)設(shè)計,不注重直接的經(jīng)濟效益和其后的發(fā)展方向,只在注重自身水平和能力的提高,對自身的經(jīng)濟要求也不高,只要有一臺能運行相應JAVA程序的電腦便可,所以不用考慮到經(jīng)濟問題。社會可行性:本游戲的開發(fā)主要為了完成畢業(yè)設(shè)計,開發(fā)的主體是個人,不存在法律上的侵權(quán)行為,也不會為社會造成影響,這方面是完全可行的。3需求分析3.1 引言對軟件需求分析就是通過調(diào)查研究,建立系統(tǒng)的數(shù)據(jù)模型、功能模型、行為模型,用戶和開發(fā)人員在“系統(tǒng)必須做什么”這個問題上實現(xiàn)相互理解,達到共識,從而形成雙方認可的軟件產(chǎn)品的需求規(guī)格說明書。這樣有益于提高軟件開發(fā)過程中的能見度,便于對軟件開發(fā)過程中的控制與管理,便于采用工程方法開發(fā)軟件,提高軟件的質(zhì)量,便于開發(fā)人員、維護人員、管理人員之間的交流、協(xié)作,并作為工作成果的原始依據(jù),并且在向潛在用戶傳遞軟件功能、性能需求,使其能夠判斷該軟件是否與自己的需求相關(guān)。3.2 游戲需求 28種狀態(tài)的方塊隨機產(chǎn)生,自由下落,落下時可由玩家用上、下、左、右控制鍵控制翻轉(zhuǎn)和移動,以便以玩家所需要的形態(tài)和位置落下。如果落下時,方塊的方格能填滿某一行,則這一行可消去。消去一行后,游戲可給玩家加分,若由存在空格的方塊填滿整個窗口,則游戲失敗。游戲功能需求如下: 游戲界面需求:設(shè)計良好的游戲界面可以讓玩家充分感受到游戲帶來的娛樂性,游戲的背景色是黑色,方塊用藍色顏色,在一定的區(qū)域內(nèi)運動和變形,落下后的障礙物用黃色顯示,這樣看起來會有一定的美感。 游戲形狀需求:用數(shù)組作為存儲方塊28種狀態(tài)的數(shù)據(jù)結(jié)構(gòu),即長條形、Z字形、反Z形、田字形、7字形、反7形、T字型,各個方塊要能實現(xiàn)它的變形,可設(shè)為順時針或逆時針變形,一般為逆時針。 鍵盤處理事件需求:方塊下落時,可通過鍵盤方向鍵(上、下、左、右鍵)對該方塊進行向上(變形),向下(加速)、向左、向右移動。 鼠標處理事件需求:通過點擊菜單欄中相應的菜單項,可以實現(xiàn)游戲的開始、結(jié)束,方塊形狀的變換,分數(shù)、等級的顯示,以及游戲幫助等功能。 顯示需求:當不同的方塊填滿一行時可以消行,剩余方塊向下移動并統(tǒng)計分數(shù)。當達到一定分數(shù)的時候,會增加相應的等級。3.3 軟硬件需求操作系統(tǒng):Microsoft Windows XP Professional Service Pack 2內(nèi)存:512M硬盤:80GCPU:賽揚2.8交互工具:鍵盤/鼠標顯示器:VGA顯示器JDK版本:jdk1.6.0.02Eclipse版本:eclipse-SDK-3.4-win323.4 接口控制本游戲通過鍵盤進行操作,在Windows的操作系統(tǒng)下,利用鍵盤的上、下、左、右鍵對方塊進行移動變形,要使用鍵盤的接口事件。3.5 方案論證學校現(xiàn)已開設(shè)的課程有C語言、C+,java,自己本身自學了Java,通過網(wǎng)上以及圖書館的資料,知道可以通過C,C+,VB,Delphi,Java實現(xiàn)俄羅斯方塊游戲的設(shè)計。下面簡單介紹下VB、C+、Java各自的優(yōu)點:3.5.1 VB的優(yōu)點全稱Visual Basic,它是以Basic語言作為其基本語言的一種可視化編程工具。在中國乃至全世界都能看到它的身影,它曾是在中國最為流行的編程工具,到現(xiàn)在還占 據(jù)著非常重要的地位,對于它的好壞大家都有一定的了解,VB作為一種較早出現(xiàn)的開發(fā)程序以其容易學習,開發(fā)效率較高,具有完善的幫助系統(tǒng)等優(yōu)點曾影響了好 幾代編程人員,但是由于VB不具備跨平臺這個特性,從而也決定了VB在未來的軟件開發(fā)中將會逐漸地退出其歷史舞臺;它對組件技術(shù)的支持是基于COM和 ActiveX,對于組件技術(shù)不斷完善發(fā)展的今天,它也顯出了它的落后性;同時VB在進行系統(tǒng)底層開發(fā)的時候也是相對復雜的,調(diào)用API函數(shù)需聲明,調(diào)用 不方便,不能進行DDK編程,不可能深入Ring0編程,不能嵌套匯編;而且面向?qū)ο蟮奶匦圆?;網(wǎng)絡(luò)功能和數(shù)據(jù)庫功能也沒有非常突出的表現(xiàn),綜上所 述,VB作為一種可視化的開發(fā)工具由于其本身的局限性,導致了它在未來軟件開發(fā)中逐步被其他工具所代替。3.5.2 C+的優(yōu)點C+是對C語言的擴充,擴充的絕大部分來自著名語言中的最佳特性:從SIMULA 67中吸取了類,從ALGOL 68中吸取了運算符一名多用、引用和在分程序中任何地方說明變量,綜合了Ada的類屬和Clu的模塊特點,從BCPL中吸取異常處理,從BCPL中吸取了用/表示注釋。C+保持了C的緊湊、靈活、高效和易移植強的優(yōu)點,它對數(shù)據(jù)抽象的支持主要在于類概念和機制,對面向?qū)ο箫L范的支持主要通過虛擬函數(shù)。C+既有數(shù)據(jù)抽象和面向?qū)ο竽芰ΓZ言運行性能高多,加上C語言的普及,而從C至C+的過渡較為平滑,以及C+與C的兼容程度可使數(shù)據(jù)巨大的C程序能方便地在C+環(huán)境中重用。盡管C+當初的設(shè)計本意是幫助管理大型程序,但其用途并不僅限于此。C+的面向?qū)ο蟮奶匦钥捎行У赜糜趯嶋H的程序設(shè)計工作。C+常常用于設(shè)計編輯器、數(shù)據(jù)庫、個人文件系統(tǒng)以及通訊程序等。而且,由于C+共享C的效率,所以用C+可以構(gòu)成很多高性能的系統(tǒng)軟件。3.5.3 Java的優(yōu)點(1) 安全性 Java是一種安全的網(wǎng)絡(luò)編程語言,不支持指針類型,一切對內(nèi)存的訪問都必須通過對象的實例來實現(xiàn)。這樣能夠防止他人使用欺騙手段訪問對象的私有成員,也能夠避免在指針操作中易產(chǎn)生的錯誤。此外,Java的安全性體現(xiàn)在多個層次上:在編譯層,有語法檢查;在解釋層,有字節(jié)碼校驗器,可進行代碼段格式測試和規(guī)則檢查、訪問權(quán)限和類型轉(zhuǎn)換合法性檢查、操作數(shù)堆棧的上溢和下溢檢測、代碼參數(shù)類型合法性檢查等;在平臺層上,通過配置策略,可設(shè)定訪問資源域,無須區(qū)分本地或遠程。(2) 可移植性 Java具備有很好的移植性,這主要得益于它與平臺無關(guān)的特性。同時,Java的類庫中也實現(xiàn)了與平臺無關(guān)的接口,這使得這些類庫也能移植。同時,Java編譯器主要是由Java本身來實現(xiàn)的,Java的運行系統(tǒng)(解釋器)由標準C語言實現(xiàn),因而整個Java系統(tǒng)都具有可移植性。 (3) 多線程機制 Java具有多線程機制,這使得應用程序能夠并行地執(zhí)行。它的同步機制也保證了對共享數(shù)據(jù)的共享操作,而且線程具有優(yōu)先級的機制,有助于分別使用不同線程完成特定行為,也提高了交互的實時響應能力。Java的多線程技術(shù)使網(wǎng)上實時交互實現(xiàn)很容易,從而為解決網(wǎng)上大數(shù)量的客戶訪問提供了技術(shù)基礎(chǔ)。(4) 跨平臺通常,在Windows下編寫的程序是不能直接拿到UNIX上運行的,因為程序的執(zhí)行最終必須轉(zhuǎn)換成為計算機硬件的機器指令來執(zhí)行,專門為某種計算機硬件和操作系統(tǒng)編寫的程序是不能夠直接放到其他類型的計算機硬件上執(zhí)行的,至少要做移植工作。要想讓程序能夠在不同的計算機上運行,就要求程序設(shè)計語言能夠跨越各種軟件和硬件平臺,而Java恰恰滿足了這一需求。Java編譯器能夠產(chǎn)生一種與計算機體系結(jié)構(gòu)無關(guān)的字節(jié)指令,只要安裝了Java虛擬機,Java就可以在相應的處理機上執(zhí)行。3.5.4 方案的選擇面向?qū)ο蟮某绦蛟O(shè)計吸取了結(jié)構(gòu)化程序設(shè)計的先進思想,并把它們同幾個支持用戶用新方法進行程序設(shè)計的有力概念結(jié)合在一起。所有面向?qū)ο蟮某绦蛟O(shè)計語言一般都包含三個概念:封裝、多態(tài)性和繼承性。這種方法要求語言必須具備抽象、封裝、繼承和多態(tài)性這幾個關(guān)鍵要素。面向?qū)ο蟮某绦蛟O(shè)計,是通過數(shù)據(jù)和代碼建立分塊的內(nèi)存區(qū)域,以便提供對程序進行模塊化的一種程序設(shè)計方法,這些模塊可以被用作樣板,在需要時再建立其副本。C+和Java在面向?qū)ο筮@方面比VB要強,所以我排除了用VB做的可能性。但是C+為了與C語言兼容,其是包含了些面向過程的成分;Java除了C+中非面向過程的部分,其程序編寫過程就是設(shè)計、實現(xiàn)類,定義其屬性、行為的過程。還有Java特有的“沙箱”機制是其安全性的保障,同時它去除了C+中易造成的錯誤指針,增加了自動內(nèi)存管理等措施,保證了Java程序運行的可靠性。 所以經(jīng)過再三比較了三種語言后,決定采用Java語言編寫俄羅斯方塊。4 概要設(shè)計41 游戲設(shè)計方案的確定 本游戲的設(shè)計采用MVC模式(Model -View -Controller),即把本游戲的輸入、處理、輸出流程按照Model、View、Controller的方式進行分離,這樣本游戲的設(shè)計被分成三個層模型層、視圖層、控制層。MVC模型圖如下所示:42 系統(tǒng)流程結(jié)構(gòu)設(shè)計觸發(fā)按鍵事件圖形工廠類圖形類障礙物類中央控制器處理按鍵事件處理邏輯顯示面板顯示生產(chǎn)43 各個功能模塊圖設(shè)計4.3.1 模型層(Model)功能模塊圖設(shè)計圖形工廠圖形障礙物生產(chǎn)圖形下落產(chǎn)生障礙物4.3.2 視圖層(View)功能模塊圖設(shè)計游戲面板GamePanel方塊的顯示障礙物的顯示4.3.3 控制層(Controller)功能模塊圖設(shè)計 中央控制器Controller類圖形工廠生產(chǎn)圖形顯示面板顯示圖形和障礙物處理按鍵和鼠標事件5 詳細設(shè)計5.1模型層(Model)設(shè)計5.1.1 圖形的產(chǎn)生 通過圖形工廠類ShapeFactory的getShape(ShapeListener listener)方法隨機產(chǎn)生方塊的某種狀態(tài),這里運用了工廠設(shè)計模式,這種設(shè)計模式是為了實現(xiàn)高內(nèi)聚低耦合而存在的,這種設(shè)計模式的通俗解釋就是:你想要一個產(chǎn)品,你需要讓工廠給你生產(chǎn)一個,你要告訴工廠你要生產(chǎn)什么產(chǎn)品,就把你需要生產(chǎn)的這個產(chǎn)品當做參數(shù)傳給工廠類的生產(chǎn)產(chǎn)品的方法,然后根據(jù)你傳進來的產(chǎn)品,而決定工廠人生產(chǎn)什么產(chǎn)品,產(chǎn)生出來產(chǎn)品后,最后要返回您要的這個東西。7654321隨機產(chǎn)生一個數(shù)隨機數(shù)一字形Z字形反Z形7字形反7形倒T形田字型5.1.2 圖形的數(shù)據(jù)結(jié)構(gòu) 定義一個4x4方陣,共16個小格。用“0”和“1”來表示每個方格是繪制還是空白,由此可以組合出多種圖形,如圖所示:其中圖一表示為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個方向的方塊,在不同旋轉(zhuǎn)角度顯示不同方向的方塊來完成的。所以程序要控制方塊的旋轉(zhuǎn)方向,只要控制顯示哪副圖就可以了。本游戲是用一個三維數(shù)組int shapes = new int;作為存儲方塊的數(shù)據(jù)結(jié)構(gòu)來保存方塊的28種狀態(tài)的。5.1.3 圖形的移動圖形類Shape保存了自己的位置信息,用left表示圖形到左邊界的距離,top表示圖形到上邊界的距離,圖形移動就是改變left和top的值。向上移動:top減1,向下移動:top加1,向左移動:left減1,向右移動:left加1。圖形的移動分為圖形的自動下落以及通過按鍵事件實現(xiàn)圖形的左移、右移以及加速下移。通過多線程ShapeDriver類來實現(xiàn)圖形的自動下移,由于游戲中方塊的動態(tài)性,每個方塊有一定的生命周期,所以選用線程來實現(xiàn)方塊。一個方塊用一個線程類對象實現(xiàn),該類繼承與Thread類,當一個方塊出現(xiàn)時也就表示一個線程對象產(chǎn)生并開始運行。通過對按鍵事件的響應,實現(xiàn)圖形的左移、右移以及加速下移。5.1.4 圖形的變形通過int type = new Random().nextInt(shapes.length); shape.setBody(shapestype);shape.setStatus(0);實現(xiàn)初始圖形的初始化,通過status = (status + 1) % body.length;實現(xiàn)圖形的變形功能。5.1.5 存儲和表示障礙物用一個和顯示區(qū)域的面板大小相對應的二維數(shù)組保存障礙物的位置信息,如果對應的位置是障礙物,則這個數(shù)組中相應的元素就為1,否則就為0。如何把圖形變成障礙物呢?只要把屬于圖形的格子對應的位置都變成障礙物即可。代碼如下:public boolean isMember(int x, int y, boolean rotate) int tempStatus = status;if(rotate) tempStatus = (status + 1) % body.length;return bodytempStatusy*4 + x = 1;public void accept(Shape shape) System.out.println(Grounds accept);for(int x=0; x4; x+) for(int y=0; y4; y+) if(shape.isMember(x, y, false) if(shape.getLeft() + x)Global.WIDTH & (shape.getTop() + y)=0; y-) boolean full = true;for(int x=0; x0; y-) for(int x=0; xGlobal.WIDTH; x+) zawxy = zawxy-1;for(int x=0; xGlobal.WIDTH; x+) zawx0 = 0;deleteFullLine();利用循環(huán)語句從屏幕最底行依次向上對有方塊的每一行進行判斷,判斷某一行中是否有空白,如果沒有空白的話,則將當前的行號傳遞給deleteLine(int lineNum)方法,由該方法實現(xiàn)消除當前行,并將上面的方塊依次下移一行,最后再重新調(diào)用deleteFullLine()方法進行查找,直到所有行都檢查一遍結(jié)束。5.2視圖層(View)設(shè)計5.2.1 方塊的顯示通過視圖層的GamePanel類的paint(Graphics g)方法調(diào)用Shape類的drawMe(Graphics g)方法,從而實現(xiàn)方塊的繪制,代碼如下:public void drawMe(Graphics g) g.setColor(Color.BLUE);for(int x=0; x4; x+) for(int y=0; y4; y+)if(getFlagByPoint(x, y) g.setColor(new Shape().shapeColor);g.fill3DRect(left + x)*Global.CELL_SIZE, (top + y)*Global.CELL_SIZE, Global.CELL_SIZE, Global.CELL_SIZE, true); 5.2.2 障礙物的顯示 通過視圖層的GamePanel類的paint(Graphics g)方法調(diào)用Ground的drawMe(Graphics g) 方法,從而實現(xiàn)障礙物的繪制,代碼如下:public void drawMe(Graphics g) for(int x=0; xGlobal.WIDTH; x+) for(int y=0; yGlobal.HEIGHT; y+) if(zawxy = 1) g.fill3DRect(x*Global.CELL_SIZE, y*Global.CELL_SIZE, Global.CELL_SIZE, Global.CELL_SIZE, true);5.3 控制層(Controller)設(shè)計控制層主要是實現(xiàn)圖形工廠生產(chǎn)圖形,圖形按鍵事件的處理,方塊、障礙物顯示的控制,圖形自動下落和障礙物生成的控制。通過控制層這個大管家最終實現(xiàn)此俄羅斯方塊的按鍵事件的處理以及各種邏輯的處理。5.4 游戲演示5.4.1 游戲界面顯示5.4.2 開始和結(jié)束控制菜單5.4.3 分數(shù)和等級查看菜單 5.4.4 變換方塊菜單5.4.5 幫助菜單5系統(tǒng)測試5.1 游戲界面菜單選項的功能測試(1) “控制”菜單測試點擊“游戲”“開始”輸出:游戲開始結(jié)果:正常點擊“游戲”“結(jié)束”輸出:彈出游戲結(jié)束提示框結(jié)果:正常(2) “查看”菜單測試點擊“查看”“分數(shù)”輸出:在游戲面板中間跳出分數(shù)顯示框結(jié)果:正常點擊“查看”“級別”輸出:在游戲面板中間跳出級別顯示框結(jié)果:正常(3) “變換”菜單測試點擊“變換”“改變方塊”輸出:在游戲面板中顯示隨機產(chǎn)生的某種方塊結(jié)果:正常5.2 按鍵事件的功能測試 (1) 方塊移動測試 游戲過程中,點擊“左、右、下”方向鍵輸出:方塊正常移動,不會移出邊界結(jié)果:正常 (2) 方塊反轉(zhuǎn)測試 游戲過程中,點擊向上方向鍵輸出:方塊無邊界和障礙物阻擋的情況下可反轉(zhuǎn)結(jié)果:正常5.3方塊堆砌與消行測試(1) 當方塊下落到最底面或與障礙物接觸時輸出:方塊成功堆砌在底部結(jié)果:正常 (2) 當出現(xiàn)滿行現(xiàn)象時輸出:所有滿行被消除,方塊依次下移結(jié)果:正常5.4 測試結(jié)果分析 經(jīng)過測試,本游戲?qū)崿F(xiàn)了基本的功能,不過整體功能還不是很強大,作為開發(fā)的第一個版本,游戲在很多方面還需要進一步完善。結(jié) 論游戲設(shè)計與實踐是一項復雜而且龐大的工作,在選題之后,我才意識到過程的艱難,因為以前從來沒有接觸過游戲設(shè)計,剛開始時有點迷茫和彷徨。后來通過看書和在網(wǎng)上查找資料,逐漸找到了一些感覺,也依照資料自己動手編寫了幾個簡單經(jīng)典的游戲。本文僅以俄羅斯方塊為例予以說明。本次設(shè)計讓我初步懂得了電子游戲所涉及到的有關(guān)技術(shù)、方法,包括電子游戲分類、選題、構(gòu)思等。并實現(xiàn)幾個可演示的游戲軟件,其中有很多應用了學習的相關(guān)技術(shù),并且做到了圖、文、聲并茂,能實際演示。此次設(shè)計過程中印象最深的收
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 萬達酒店員工管理制度
- 企業(yè)學校教師管理制度
- 企業(yè)活動推廣管理制度
- java崗位管理制度
- 中學飲食安全管理制度
- 鄉(xiāng)鎮(zhèn)青年旅店管理制度
- 個體診所消毒管理制度
- 休眠賬戶經(jīng)辦管理制度
- 企業(yè)日常門禁管理制度
- 企業(yè)防水安全管理制度
- 痛風結(jié)石病人的術(shù)后護理
- 室內(nèi)拆除及裝修方案
- 養(yǎng)殖業(yè)技術(shù)知識培訓課件
- 慢性傷口護理中的柔性可穿戴設(shè)備應用
- 學生心理健康一生一策檔案表
- 2025年商洛柞水縣城鄉(xiāng)供水有限公司招聘筆試參考題庫含答案解析
- 浙江首考2025年1月普通高等學校招生全國統(tǒng)考政治試題及答案
- 實訓美容手術(shù)操作基本技術(shù)美容外科學概論講解
- 學校消防安全管理與突發(fā)事件處置
- 《排球教學課件》課件
- 人為關(guān)懷在骨科護理中的應用
評論
0/150
提交評論