




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
前言電子游戲如今成了廣大年輕人休閑娛樂活動的首選,隨著科技的進步和互聯(lián)網(wǎng)的發(fā)展,各式各樣的游戲也如雨后春筍般出現(xiàn)在應(yīng)用市場中。尤其是電子競技為代表的競技類游戲,完美結(jié)合了傳統(tǒng)體育和現(xiàn)代藝術(shù),打破了以往人們對游戲的固有認知?,F(xiàn)在,電子游戲也成為了一項重要的產(chǎn)業(yè),繼續(xù)促進著經(jīng)濟增長,帶來更多的就業(yè)崗位。疫情當中,在人身自由大幅度受到限制的時候,電子游戲不可謂不是消遣時光的最佳選擇,只需要一臺電腦或游戲機,甚至一部手機就可以足不出戶地享受在自己的虛擬世界里。貪吃蛇是一款經(jīng)典的移動游戲,從最開始諾基亞手機里基礎(chǔ)的像素風(fēng)格到如今智能手機里豐富有趣玩法,它已經(jīng)伴隨了許多人的童年和青春,是幾代人共同的記憶,同時現(xiàn)在依舊保持著相當龐大的玩家群體。所以這一次是我用Python語言設(shè)計一款貪吃蛇小游戲來完成我的畢業(yè)設(shè)計。Python作為一個解釋型的高級語言非常適合來編寫一些小型游戲,它有著豐富的類庫,尤其是Python當中的pygame模塊庫,就是專門為2D游戲設(shè)計的,它具有良好的跨平臺性,包含圖像、聲音等等。一、概述(一)游戲產(chǎn)業(yè)現(xiàn)狀隨著人民生活水平的不斷提高,以及對生活品質(zhì)要求的增加,人們在日常娛樂活動上有著更加多樣的選擇,電子游戲便是其中之一,游戲產(chǎn)業(yè)作為近幾年來的新興產(chǎn)業(yè)已然成了最耀眼的一顆明珠,游戲行業(yè)也備受廣大年輕人的青睞。數(shù)據(jù)顯示,2021年度全球游戲市場收入高達1758億美元,全球玩家總數(shù)超過30億,其中以移動玩家為主組成的龐大的移動游戲市場以907億的收入占據(jù)了全球市場的半壁江山。亞太地區(qū)擁有著世界上最多的玩家,占全球玩家總數(shù)的55%,這很大一部分得因于中國龐大的人口基數(shù),同時也包含印度和東南亞的新興地區(qū)。來自歐洲和北美市場的玩家消費占比極高,合計占游戲市場收入的40%以上。同時值得注意的是,2021年,這兩個市場的玩家在全球玩家總數(shù)中占比不到四分之一。據(jù)《2022中國游戲產(chǎn)業(yè)趨勢及潛力分析報告》統(tǒng)計,2021年中國游戲產(chǎn)業(yè)實際銷售收入預(yù)計超過2900億元。二次元移動游戲市場規(guī)模超過200億元;IP改編移動游戲市場收入從2017年745億元增至2021年近1300億元;SLG頭部市場的符合增長率超過25%等等。此外諸如主機游戲、國外市場、云游戲,甚至元宇宙也都是報告長期看好的潛力領(lǐng)域。圖1-1中國二次元游戲市場實際銷售收入(二)游戲產(chǎn)業(yè)未來發(fā)展趨勢直至2022年,電子游戲已經(jīng)發(fā)展了50余年,游戲市場依舊具有很大的發(fā)展空間。過去18個月是全球游戲市場增速最高的一段時間,2020年全球游戲市場增速達到23.1%,為近十年來的增長最高速。在不斷變化的疫情及其他全球趨勢的影響之下,游戲市場爆發(fā)出巨大的潛力,同時也經(jīng)歷著震蕩和起伏。但有一點不會改變,游戲市場的潛力仍未被開發(fā)殆盡。2022年的游戲市場將持續(xù)保持增長,全球近30億玩家將為這一市場不斷注入活力。到2021年底,全球?qū)⒂薪?0億玩家,其中超過一半來自泛太平洋地區(qū)(APAC)。而他們也成為驅(qū)動全球游戲市場增長的主要力量。玩家數(shù)量及游戲收入不斷增長之下,是不斷變化的市場發(fā)展方向及玩家與游戲互動方式的變革。游戲內(nèi)容的重要性不斷凸顯,而玩家更多地、或者也是更習(xí)慣地將游戲視為社交平臺。更重要的是,游戲市場的最新變革給游戲未來的設(shè)計及開發(fā)提供了許多新的主題及焦點。玩家參與游戲內(nèi)容及互動的方式將不斷創(chuàng)新,玩家更習(xí)慣于訂閱內(nèi)容的支付方式,也更在意游戲作為社交平臺的體驗,甚至一些成功的產(chǎn)品會將游戲社交體驗的優(yōu)先級置于游戲玩法之上。而有一些最新趨勢則是在全球疫情之下催生并得到不斷發(fā)展,例如用戶對于直播及視頻類游戲內(nèi)容的消費及參與。綜合來看所有地區(qū)和類型的玩家,會發(fā)現(xiàn)一個主要趨勢,那就是除“玩游戲”之外的其他與游戲互動的方式將推動未來游戲市場的大規(guī)模發(fā)展。游戲中的演唱會、直播內(nèi)容、電競以及身份探索,又或者僅僅是在游戲世界中與好友會面、閑逛等參與方式,都將是未來游戲里不可或缺的一部分,當然,傳統(tǒng)的游戲體驗也并不會因此受到冷落,只是與游戲互動的方式將變得更加多樣化。(三)貪吃蛇的過去和現(xiàn)在貪吃蛇起源于1976年的街機游戲Blockade,不過這款游戲并沒有引入“蛇”的概念,而是兩個像素小人,一邊向前走,一邊在走過的路上砌墻。當然,這只是在界面的表現(xiàn)形式不同。規(guī)則是一樣的,誰先撞到墻,或者撞到對方,誰就輸了。1997年,一位芬蘭軟件工程師TaneliArmanto為諾基亞6110機型開發(fā)出一款名為Snake的小游戲,中文譯名“貪吃蛇”。沒想到在25年之后,他創(chuàng)作的《貪吃蛇》居然被視作科技和娛樂行業(yè)的一大重要轉(zhuǎn)折點。事實上,以《貪吃蛇》為代表的一批手游在當年一款極具商業(yè)潛力,甚至可以說為如今價值上千億美元的手機游戲行業(yè)奠定了發(fā)展根基。2016年,一款名為《貪吃蛇大作戰(zhàn)》的手機游戲憑借簡潔的界面、優(yōu)秀的手感、特色的聯(lián)機系統(tǒng)以及各種創(chuàng)新新穎的玩法模式一經(jīng)推出便迅速火爆中國游戲市場,成為當時幾個下載量最高的手游之一。近幾年來,各式各樣的貪吃蛇游戲也出現(xiàn)在各大平臺上,玩法模式也層出不窮。二、開發(fā)工具和過程(一)Python3.9在本次畢業(yè)設(shè)計過程中,系統(tǒng)開發(fā)平臺是Windows10專業(yè)版(64位),程序設(shè)計語言為Python,運行環(huán)境為Python3.9。Python3是Python2的功能升級版本,語法更為完善簡潔,也擁有更龐大的函數(shù)庫,而Python3.9就是Python3的最新版本。(二)SpyderSpyder是一個Python的集成開發(fā)平臺,與其他編譯器不同的是,Spyder可以自由調(diào)整界面窗口的大小。作為一個重點是數(shù)據(jù)分析的開發(fā)環(huán)境來說,它也有著和著名的MATLAB數(shù)學(xué)軟件一樣的優(yōu)點,就是能夠直接觀察并修改數(shù)組的值。此外,Spyder可以通過在控制臺中按Tab鍵自動補全,另外還有特定的窗口進行變量顯示。三、需求分析(一)條件分析1.技術(shù)條件Python作為一個面向?qū)ο蟮慕忉屝途幊陶Z言,具備了高級語言和低級語言的優(yōu)點。它有著簡單的語法和豐富的庫,pygame模塊可以幫助我們構(gòu)建完成游戲界面框架以及演示算法。Python的跨平臺特性也適用于目前主流平臺的開發(fā),代碼的模塊化也非常便于今后新系統(tǒng)的迭代而來進行修改或擴展??偠灾敬蔚南到y(tǒng)設(shè)計貪吃蛇游戲開發(fā)符合現(xiàn)有的技術(shù)條件和硬件要求。2.經(jīng)濟條件本次所開發(fā)實現(xiàn)的貪吃蛇是一個小型的單機游戲,整體系統(tǒng)代碼編寫到測試和運行全程只通過一臺個人筆記本電腦來實現(xiàn),在開發(fā)過程中也并沒有消耗多少的資金,所以經(jīng)濟條件完全得以滿足。3.運行條件作為一個小型單機游戲,無需網(wǎng)絡(luò)連接,對設(shè)備的硬件要求也比較低。無論是家里的臺式電腦,還是自己的筆記本電腦,都可以輕松運行這款小游戲,而且并不會占用計算機的后臺資源,所以完全滿足運行條件。(二)功能分析1.簡單性貪吃蛇之所以能像俄羅斯方塊等經(jīng)典游戲流傳至今并仍然受到廣大玩家歡迎的原因就是它的游戲規(guī)則的簡單卻又不乏挑戰(zhàn),這也是為什么貪吃蛇會經(jīng)常出現(xiàn)在移動游戲市場上。由于它的簡單并且不消耗太多時間,非常適合人們利用短暫的空閑時光來娛樂自己,比如在上班休息時或下班的通勤路上。這類人整日忙碌于生活或工作,休閑時間比較短暫,貪吃蛇這種小型游戲成了打發(fā)無聊時間的不錯選擇。2.趣味性單純的規(guī)則簡單并不能吸引廣大玩家,貪吃蛇同樣具有那些經(jīng)典游戲的趣味性和挑戰(zhàn)性,你只需要在一個固定的范圍內(nèi)上下左右控制小蛇不斷地通過吃果實來使自己變長,避免碰到障礙或“咬”到自己的身體,小蛇的生存空間也會因為自己的身體慢慢變長而受到擠壓。隨著游戲時間的推移,玩家為了獲得更高的分數(shù),就不得不快速進行走位和拐彎,同時游戲的緊張感與刺激性也在慢慢增加。四、玩法介紹和概要設(shè)計(一)玩法介紹貪吃蛇的游戲規(guī)則非常簡單,玩家需要通過鍵盤上的方向鍵來控制小蛇不停地游動,然后不斷地獲取食物來使其變長從而取得更高的得分,過程當中玩家需要避免碰到四周的墻壁,更不能碰到自己的身體,否則游戲結(jié)束。食物在被吃掉后會刷新在不同的地點。(二)概要設(shè)計圖4-2概念設(shè)計圖1.畫面設(shè)計游戲畫面主要由背景、邊界,小蛇主體和食物組成。其中墻壁就是游戲的邊界。小蛇主要由頭部和身體組成,頭部是一個黑色實心的圓形,身體是有一個個小空心圓形排列而成,隨著不斷獲取食物,矩陣漸漸增多,這也意味著小蛇的身體慢慢變長。食物是有一個個不同顏色的小圓形構(gòu)成,每當小蛇吃掉一個食物時,下一個食物就會隨機出現(xiàn)在任意位置。這次設(shè)計還增添了開始界面、歡迎界面和死亡(結(jié)束)界面。每個界面上都會有相應(yīng)的文字提示。其中歡迎界面有正常模式和無邊界模式讓玩家選擇。此外,在游戲結(jié)束時界面會顯示最終的統(tǒng)計得分,結(jié)束后游戲會自動退出。2.過程設(shè)計游戲過程有開始、進行和結(jié)束。選擇模式開始游戲后,小蛇在隨機地點開始移動,這時玩家需要操作鍵盤上的上下左右按鍵來控制小蛇移動,當玩家按下指定方向鍵時,小蛇會進行對應(yīng)方向的移動。碰撞檢查分為三種:第一種是在正常模式下當小蛇碰到墻壁時,小蛇會死亡,游戲結(jié)束;第二種是當小蛇碰到自己身體的時候,小蛇也會死亡;第三種是當小蛇碰到食物時,小蛇的身體會增加一個圓形塊,即小蛇變長,游戲繼續(xù)進行。當小蛇碰到邊界或自己身體時,小蛇死亡,然后游戲會跳轉(zhuǎn)到結(jié)束界面并統(tǒng)計分數(shù)。3.功能設(shè)計開始:游戲開始界面會有正常/無邊界兩種模式供玩家選擇,還有退出游戲按鍵;音樂:玩家在進入游戲后會一直伴隨著背景音樂直至游戲結(jié)束;結(jié)束:當玩家控制的小蛇死亡時游戲結(jié)束,程序退出;分數(shù)記錄:當小蛇吃到食物時會取得一定的分數(shù),總分會在游戲結(jié)束界面顯示。五、詳細設(shè)計(一)程序整體實現(xiàn)與分析1.定義貪吃蛇對象,包括蛇頭和蛇身兩個部分,蛇頭單獨設(shè)置,蛇身使用列表來存儲;2.定義食物對象,包括食物對象的初始化、隨機顏色和隨機位置的設(shè)置;3.定義初始化界面,在該界面中設(shè)置文本為“正常模式”、“無邊界模式”和“退出”的三個按鈕供玩家選擇;4.定義正常模式,包括游戲窗口顯示、主循環(huán)和判斷貪吃蛇死亡的設(shè)置;5.定義無邊界模式,包括游戲窗口顯示、主循環(huán)和判斷貪吃蛇死亡的設(shè)置;6.定義游戲結(jié)束窗口,包括窗口顯示和最后得分顯示的設(shè)置。圖5-1程序設(shè)計流程圖(二)主要函數(shù)和庫文件1.主要函數(shù)(1)new_food()食物對象初始化函數(shù),傳入形參為貪吃蛇蛇頭坐標。當貪吃蛇吃掉食物后,通過該函數(shù)生成新的食物。通過傳入形參判斷新生成的食物坐標是否與蛇頭坐標相同,若相同則重新生成新的坐標。(2)start_game()正常模式的主循環(huán)函數(shù),通過該函數(shù)進行正常模式下貪吃蛇和食物的初始化、玩家控制貪吃蛇運動、蛇頭和蛇身的判斷更新和得分統(tǒng)計實現(xiàn)。(3)die_snake()正常模式下貪吃蛇死亡判斷函數(shù),傳入形參為貪吃蛇蛇頭和蛇身坐標數(shù)據(jù)。在該函數(shù)中設(shè)置布爾型變量die_flag,若死亡設(shè)置為Ture并返回,沒有死亡為False。通過遍歷蛇身存儲列表,判斷蛇身坐標是否與蛇頭坐標相同,若相同則判定貪吃蛇咬到自身,死亡。同時,判斷貪吃蛇是否撞墻,及判斷蛇頭的x和y坐標是否窗體的寬高,若超過則死亡。(4)start_kgame()無邊界模式的主循環(huán)函數(shù),通過該函數(shù)進行無邊界模式下貪吃蛇和食物的初始化、玩家控制貪吃蛇運動、蛇頭和蛇身的判斷更新和得分統(tǒng)計實現(xiàn)。(5)through_snake()無邊界模式下貪吃蛇死亡判斷函數(shù),傳入形參為貪吃蛇蛇頭和蛇身坐標數(shù)據(jù)。在該函數(shù)中設(shè)置布爾型變量die_flag,若死亡設(shè)置為Ture并返回,沒有死亡為False。通過遍歷蛇身存儲列表,判斷蛇身坐標是否與蛇頭坐標相同,若相同則判定貪吃蛇咬到自身,死亡。(6)show_end()游戲結(jié)束時,結(jié)束界面設(shè)置函數(shù)。在該函數(shù)中進行結(jié)束界面窗體的初始化,在窗體中顯示玩家的最終得分,并在改函數(shù)中調(diào)用pygame庫quit方法,使該庫停止工作。(7)into_game()游戲初始界面實現(xiàn)函數(shù),在該函數(shù)中進行游戲初始界面窗體的初始化。在該界面窗體中設(shè)置文本為“正常模式”、“無邊界模式”和“退出”的三個點擊按鈕,通過設(shè)置循環(huán),調(diào)用button函數(shù)監(jiān)聽玩家的點擊。(8)button()游戲初始界面按鈕監(jiān)聽函數(shù),在該函數(shù)中實現(xiàn)對玩家鼠標點擊事件和鍵盤輸入事件的監(jiān)聽。并根據(jù)玩家選擇,運行按鈕對應(yīng)的觸發(fā)函數(shù)。即點擊“正常模式”按鈕,運行正常模式的主循環(huán)函數(shù),以此類推。2.主要庫文件(1)pygamePygame是Python的一個模塊庫。Pygame包含圖像、聲音。建立在SDL基礎(chǔ)上,允許實時電子游戲研發(fā)而無需被低級語言(如機器語言和匯編語言)束縛?;谶@樣一個設(shè)想,所有需要的游戲功能和理念(主要是圖像方面)都完全簡化為游戲邏輯本身,所有的資源結(jié)構(gòu)都可以由高級語言提供,如Python。(2)randomrandom是產(chǎn)生隨機數(shù)的庫,即隨機數(shù)發(fā)生器,random產(chǎn)生的是偽隨機數(shù)或者說是用一種復(fù)雜的方法計算得到的序列值,因此每次運算時需要一個不同的種子值。種子值不同,得到的序列值也不同。(3)timetime庫是Python中處理時間的標準庫,用于計算機時間的表達,提供獲取系統(tǒng)時間并格式化輸出功能,提供系統(tǒng)級精確計時功能,也可用于程序性能分析。(4)syssys.exit([arg])用于程序的退出,sys.exit(n)退出程序,正常退出時exit(0)。這是通過引發(fā)SystemExit異常來實現(xiàn)的,因此遵循finally語句的子句所指定的清理操作try,并且可以攔截外層的退出嘗試??蛇x參數(shù)arg可以是一個整數(shù),給出退出狀態(tài)(默認為零)或其他類型的對象。如果它是整數(shù),則零被認為是“成功終止”,并且任何非零值等視為“異常終止”。六、運行和測試(一)運行程序1.開始界面這是貪吃蛇游戲的歡迎界面,可以看到有文字提示,玩家可以選擇正常模式或者無邊界模式進入游戲,還可以點擊退出鍵退出游戲。圖6-1-1開始界面2.正常模式這是正常模式下的游戲過程界面,此模式下小蛇不可碰到邊界,否則游戲結(jié)束,旁邊也有實時的分數(shù)統(tǒng)計情況。圖6-1-2正常模式界面3.無邊界模式這是無邊界模式下的游戲界面,此模式下小蛇可以自由穿過四周邊界,其余和正常模式一樣。圖6-1-3無邊界模式界面4.結(jié)束界面這是游戲的結(jié)束界面,有文字提示并會統(tǒng)計顯示你的最終得分情況。游戲結(jié)束后,程序自動退出。圖6-1-4結(jié)束界面(二)游戲測試123645圖6-2游戲測試統(tǒng)計表格七、優(yōu)點和不足(一)優(yōu)點(1)游戲整體設(shè)計完整,游玩過程流暢;(2)無邊界模式和分數(shù)統(tǒng)計功能成為亮點;(3)代碼簡短精煉無報錯,運行流暢。(二)不足(1)玩法單調(diào),畫面設(shè)計過于簡單;(2)沒有暫停功能成為痛點;(3)代碼排版布置稍顯雜亂。八、結(jié)語歷時半年的畢業(yè)設(shè)計作品加論文終于完成了。在這半年的時間里,我從一開始確定開題報告,接著搜集Python的基礎(chǔ)資料來學(xué)習(xí),筑牢設(shè)計作品相關(guān)的語言基礎(chǔ),再著手實現(xiàn)一些書上的小程序,由部分到整體,然后開始設(shè)計自己的貪吃蛇小游戲,這其中遇到過不少
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 波譜分譜試題及答案
- 意識教學(xué)測試題及答案
- 施工安全心得總結(jié)-1
- 運城社工面試題及答案
- 醫(yī)院窗口面試題及答案
- 電機拖動考試題及答案
- 2026屆安徽省六安二中高二化學(xué)第一學(xué)期期末教學(xué)質(zhì)量檢測試題含答案
- 2026屆內(nèi)蒙古包頭市高一化學(xué)第一學(xué)期期中監(jiān)測試題含解析
- 家電公司內(nèi)部控制管理辦法
- 沃爾瑪員工提成方案(3篇)
- 2025至2030中國污泥處理市場銷售模式與競爭格局分析報告
- 2025年電梯安全管理員試題及答案
- 2025年賽碼考試題庫
- 二零二五年度抖音短視頻內(nèi)容創(chuàng)作者經(jīng)紀合作協(xié)議書下載
- 水庫藍線管理辦法
- 中石化班組管理辦法
- 審計整改培訓(xùn)課件
- JC/T2647-2024預(yù)拌混凝土生產(chǎn)企業(yè)廢水回收利用規(guī)范
- 復(fù)雜子宮全切術(shù)后護理查房
- 2024職業(yè)病防治宣傳手冊
- 2025至2030中國煤制天然氣行業(yè)市場深度分析及發(fā)展前景與投資機會報告
評論
0/150
提交評論