基于python的椰椰歷險記游戲設(shè)計_第1頁
基于python的椰椰歷險記游戲設(shè)計_第2頁
基于python的椰椰歷險記游戲設(shè)計_第3頁
基于python的椰椰歷險記游戲設(shè)計_第4頁
基于python的椰椰歷險記游戲設(shè)計_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

目錄

1引言...............................................................1

1.1項目開發(fā)背景..................................................1

1.2開發(fā)技術(shù)簡介..................................................1

1.2.1Python簡介..............................................1

1.2.2Python的運行原理........................................2

1.3開發(fā)工具簡介..................................................2

2需求分析...........................................................2

2.1功能需求描述..................................................2

2.2非功能需求描述................................................2

2.3需求用例建模..................................................3

2.3.1小鳥移動功能模塊的用例..................................3

2.3.2管道繪制功能模塊的用例...................................5

2.3.3碰撞功能模塊的用例......................................7

2.3.4重置功能模塊的用例......................................9

3系統(tǒng)概要設(shè)計......................................................11

3.1系統(tǒng)設(shè)計原則.................................................11

3.2系統(tǒng)框架設(shè)計.................................................11

3.3系統(tǒng)功能設(shè)計.................................................12

3.3.1小鳥移動功能模塊功能設(shè)計...............................13

3.3.2管道繪制功能模塊功能設(shè)計...............................14

3.3.3碰撞功能模塊功能設(shè)計...................................15

3.3.4重置功能模塊功能設(shè)計...................................16

4系統(tǒng)詳細設(shè)計......................................................17

4.1小鳥移動功能模塊設(shè)計.........................................17

4.1.1小鳥移動功能模塊說明...................................17

4.1.2小鳥移動功能模塊詳細設(shè)計...............................17

4.2管道繪制功能模塊設(shè)計.........................................18

I

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

4.2.1管道繪制功能模塊說明...................................18

4.2.2管道繪制功能模塊詳細設(shè)計...............................18

4.3碰撞功能模塊設(shè)計.............................................19

4.3.1碰撞功能模塊說明.......................................19

4.3.2碰撞功能模塊詳細設(shè)計...................................19

4.4重置功能模塊設(shè)計.............................................21

4.4.1重置功能模塊說明.......................................21

4.4.2重置功能模塊詳細設(shè)計...................................21

5系統(tǒng)實現(xiàn)..........................................................22

5.1小鳥移動功能實現(xiàn).............................................22

5.2管道繪制功能實現(xiàn).............................................23

5.3碰撞功能實現(xiàn).................................................25

5.4重置功能實現(xiàn).................................................27

6系統(tǒng)測試..........................................................28

6.1小鳥移動功能測試.............................................28

6.2管道繪制功能測試.............................................29

6.3碰撞功能測試.................................................30

6.4重置功能測試.................................................31

7設(shè)計小結(jié)..........................................................32

參考資料............................................................33

II

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

基于python的椰椰歷險記游戲設(shè)計

1引言

隨著互聯(lián)網(wǎng)的發(fā)展與普及,人們追求的不再是物質(zhì)上的滿足,而是精神上

需求的實現(xiàn),越來越多的企業(yè)開始設(shè)計與實現(xiàn)屬于自己的游戲。在當今社會中,

游戲無處不在,人們通過游戲緩解壓力、享受快樂、結(jié)交朋友等,而椰椰歷險

記正是一款緩解壓力的休閑類小游戲。

我基于python語言,設(shè)計與實現(xiàn)了一個簡化版的椰椰歷險記。

1.1項目開發(fā)背景

隨著時代的發(fā)展,電腦不再是少部分人才擁有的稀有物,而是人們辦公學

習的一個基本工具。傳統(tǒng)的游戲機、手機游戲等不再滿足人們的生活娛樂需求,

電腦游戲也隨之得到了普及。

椰椰歷險記是一款簡單易上手的休閑益智小游戲,游戲的核心原則就是可

愛以及規(guī)則簡單,上手容易。不用花費過多腦力就可以玩,適合各個年齡階段

的玩家使用。花費很少的時間就可以進行一局游戲,既可以緩解人們的壓力,

又挑戰(zhàn)了手指的靈活度,且可以鍛煉心理承受能力。最重要的就是,這是款免

費小游戲。

我的畢業(yè)設(shè)計也就正是基于python語言,實現(xiàn)的適合于PC端用戶使用的

簡易版椰椰歷險記。

1.2開發(fā)技術(shù)簡介

1.2.1Python簡介

Python最初的目的就是為了替代ABC語言,并且是在1990年代初由荷蘭數(shù)

學和計算機科學研究學會的一員吉多·范羅蘇姆設(shè)計的。Python是一門擁有眾

多優(yōu)點,如簡單、易學、易讀、易維護、用途廣泛、速度較快、免費、開源等

的語言。

Python不僅能夠提供高效的高級數(shù)據(jù)結(jié)構(gòu),還能簡單有效地面向?qū)ο缶幊獭?/p>

Python語法和動態(tài)類型,以及解釋型語言的精髓,使Python逐漸被用于獨立大

型項目的開發(fā),并隨著版本的不斷更新和語言新功能的增加,成為大多數(shù)平臺

上編寫腳本和快速開發(fā)應(yīng)用的編程語言。

1

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

Python可以使用C語言或C++拓展新的功能和數(shù)據(jù)類型,易于拓展;也可

以用于定制軟件中的拓展程序語言。同時Python也擁有豐富的標準庫,能夠提

供適用于主要系統(tǒng)平臺的源碼或機器碼。

1.2.2Python的運行原理

Python程序的運行過程包含兩個步驟:解釋器將源代碼翻譯成中間碼,然后

由虛擬機解釋執(zhí)行。具體講,就是首先由Python解釋器將.py文件中的源代

碼翻譯成中間碼,這個中間碼是一個擴展名為.pyc的文件,再由Python虛擬

機(PythonVirtualMachine,PVM)逐條將中間碼翻譯成機器指令執(zhí)行。

1.3開發(fā)工具簡介

工具的使用:PyCharm

PyCharm是一款Pythonide(整合開發(fā)環(huán)境的智能開發(fā)服務(wù)),擁有一整套工

具,可以幫助用戶在使用Python語言進行開發(fā)時提高效率。例如:debug,語

法高亮,項目管理,代碼跳轉(zhuǎn),smarttips,自動完成,單元測試,版本控制。

2需求分析

2.1功能需求描述

通過對椰椰歷險記的玩家進行市場調(diào)研,了解椰椰歷險記的具體情況,設(shè)

計實現(xiàn)以下功能:

(1)小鳥移動功能:按空格鍵小鳥進行跳躍

(2)管道繪制功能:不斷添加刪除管道,呈現(xiàn)出接連不斷管道向左移動的

效果;

(3)碰撞功能:小鳥碰到管道

(4)重置功能:重新開始游戲

2.2非功能需求描述

對椰椰歷險記游戲進行深入了解,該游戲的非功能性需求有以下幾個方面:

(1)易用性:操作簡單,易上手,無論什么年齡的玩家都能玩;

(2)美觀性:游戲頁面可愛而不失美觀

2

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

2.3需求用例建模

對功能需求進行分析,繼而創(chuàng)建以下總體用例模型,如圖2-1所示。

圖2-1椰椰歷險記的總體用例模型

2.3.1小鳥移動功能模塊的用例

需求分析階段,梳理分析通過用例圖和活動圖進行。小鳥移動功能模塊具

體的用例描述如圖2-2所示。

圖2-2小鳥移動功能模塊用例圖

對小鳥移動功能的用例進一步細化,使用活動圖對游戲的動態(tài)行為進行建

模。小鳥移動功能模塊活動圖如圖2-3所示。

3

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

圖2-3小鳥移動功能模塊活動圖

通過對圖2-2的用例圖和圖2-3的活動圖進行進一步的精細分析,能夠得

到每個用例的描述表。而小鳥移動功能模塊用例描述就如表2-1所示。

表2-1小鳥移動功能模塊用例描述

項目描述

用例名稱小鳥移動功能

用例標識號01

參與者玩家

4

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

簡要說明玩家點擊空格鍵,小鳥跳躍

前置條件啟動游戲成功

1.玩家啟動游戲

2.進入游戲首頁

基本事件流3.游戲開始

4.玩家點擊空格鍵,小鳥跳躍

5.用例終止

其他事件流在開始游戲之前,玩家可以隨時關(guān)閉游戲

異常事件流啟動游戲失敗

后置條件進入的主界面main.py,裝載相應(yīng)的數(shù)據(jù)

2.3.2管道繪制功能模塊的用例

需求分析階段,梳理分析通過用例圖和活動圖進行。管道繪制功能模塊具

體的用例描述如圖2-4所示。

圖2-4管道繪制功能模塊用例圖

對管道繪制功能的用例進一步細化,使用活動圖對游戲的動態(tài)行為進行建

模。管道繪制功能模塊活動圖如圖2-5所示。

5

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

圖2-5管道繪制功能模塊活動圖

通過對圖2-4的用例圖和圖2-5的活動圖進行進一步的精細分析,能夠得

到每個用例的描述表。管道繪制功能模塊用例描述如表2-2所示。

表2-2管道繪制功能模塊模塊用例描述

項目描述

6

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

用例名稱管道繪制功能

用例標識號02

參與者系統(tǒng)

簡要說明繪制、添加、刪除、移動管道

前置條件啟動游戲成功

1.繪制管道

2.添加管道

基本事件流

3.刪除管道

4.移動管道

其他事件流在開始游戲之前,玩家可以隨時關(guān)閉游戲

異常事件流啟動游戲失敗

后置條件進入的主界面main.py,裝載相應(yīng)的數(shù)據(jù)

2.3.3碰撞功能模塊的用例

需求分析階段,梳理分析通過用例圖和活動圖進行。碰撞功能模塊具體的

用例描述如圖2-6所示。

圖2-6碰撞功能模塊用例圖

對碰撞功能的用例進一步細化,使用活動圖對游戲的動態(tài)行為進行建模。

碰撞功能模塊活動圖如圖2-7所示。

7

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

圖2-7碰撞功能模塊活動圖

通過對圖2-6的用例圖和圖2-7的活動圖進行進一步的精細分析,能夠得

到每個用例的描述表。碰撞功能模塊用例描述如表2-3所示。

表2-3碰撞功能模塊用例描述

項目描述

用例名稱碰撞功能

用例標識號03

參與者系統(tǒng)

簡要說明小鳥碰撞天花板、地板、管道

前置條件啟動游戲成功

基本事件流1.玩家啟動游戲

8

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

2.進入游戲首頁

3.游戲開始

4.玩家點擊空格鍵,小鳥跳躍

5.小鳥碰撞天花板、地板、管道

6.用例終止

其他事件流在開始游戲之前,玩家可以隨時關(guān)閉游戲

異常事件流啟動游戲失敗

后置條件進入的主界面main.py,裝載相應(yīng)的數(shù)據(jù)

2.3.4重置功能模塊的用例

需求分析階段,梳理分析通過用例圖和活動圖進行。重置功能模塊具體的

用例描述如圖2-8所示。

圖2-8重置功能模塊用例圖

對重置功能的用例進一步細化,使用活動圖對游戲的動態(tài)行為進行建模。

重置功能模塊活動圖如圖2-9所示。

9

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

圖2-9重置功能模塊活動圖

通過對圖2-8的用例圖和圖2-9的活動圖進行進一步的精細分析,能夠得

到每個用例的描述表。重置功能模塊用例描述如表2-4所示。

表2-4重置功能模塊用例描述

項目描述

用例名稱重置功能

用例標識號04

參與者玩家、系統(tǒng)

簡要說明玩家點擊b鍵,游戲重置

前置條件游戲結(jié)束

1.游戲結(jié)束

基本事件流

2.玩家點擊b鍵

10

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

3.游戲重置

4.用例終止

其他事件流玩家可以隨時關(guān)閉游戲

異常事件流啟動游戲失敗

后置條件進入的主界面main.py,裝載相應(yīng)的數(shù)據(jù)

3系統(tǒng)概要設(shè)計

3.1系統(tǒng)設(shè)計原則

通過與椰椰歷險記游戲玩家溝通,了解游戲問題。最終實現(xiàn)畫風卡通可愛

的簡化版椰椰歷險記。

3.2系統(tǒng)框架設(shè)計

結(jié)合開發(fā)平臺的特點,再根據(jù)游戲的需求分析、用例建模分析設(shè)計椰椰歷

險記的系統(tǒng)架構(gòu)模型,即如圖3-1所示。

11

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

圖3-1椰椰歷險記整體架構(gòu)圖

3.3系統(tǒng)功能設(shè)計

在游戲的分析階段在對子系統(tǒng)劃分的基礎(chǔ)上,再進行進一步地細分,將它逐

層的分解成多個功能單一、大小相同、但具有一定獨立性的模塊。椰椰歷險記

的功能結(jié)構(gòu)圖即如圖3-2所示,本系統(tǒng)通過劃分后有小鳥移動功能、管道繪制

功能、碰撞功能和重置功能四大主要功能模塊。

12

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

圖3-2椰椰歷險記功能結(jié)構(gòu)圖

3.3.1小鳥移動功能模塊功能設(shè)計

經(jīng)過對系統(tǒng)功能結(jié)構(gòu)圖的詳細分析,得到了各子模塊相關(guān)的功能說明,并

使用功能流程圖進行功能說明,見圖3-3。

13

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

圖3-3小鳥移動功能模塊流程圖

3.3.2管道繪制功能模塊功能設(shè)計

經(jīng)過對系統(tǒng)功能結(jié)構(gòu)圖的詳細分析,得到了各子模塊相關(guān)的功能說明,并

使用功能流程圖進行功能說明,見圖3-4。

14

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

圖3-4管道繪制功能模塊流程圖

3.3.3碰撞功能模塊功能設(shè)計

15

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

經(jīng)過對系統(tǒng)功能結(jié)構(gòu)圖的詳細分析,得到了各子模塊相關(guān)的功能說明,并

使用功能流程圖進行功能說明,見圖3-5。

圖3-5碰撞功能模塊流程圖

3.3.4重置功能模塊功能設(shè)計

經(jīng)過對系統(tǒng)功能結(jié)構(gòu)圖的詳細分析,得到了各子模塊相關(guān)的功能說明,并

使用功能流程圖進行功能說明,見圖3-6。

16

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

圖3-6重置功能模塊流程圖

4系統(tǒng)詳細設(shè)計

通過和椰椰歷險記玩家進行溝通,了解游戲所擁有的問題,希望通過對游戲

的設(shè)計實現(xiàn),盡可能的解決玩家提出來的問題。

4.1小鳥移動功能模塊設(shè)計

4.1.1小鳥移動功能模塊說明

運行程序,進入游戲首頁,在游戲啟動后,通過空格鍵實現(xiàn)小鳥移動跳躍功

能。

4.1.2小鳥移動功能模塊詳細設(shè)計

對各子功能進行分析與設(shè)計需通過需求分析和概要設(shè)計,能得到小鳥移動

功能模塊的靜態(tài)結(jié)構(gòu)類圖,如圖4-1所示。

17

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

圖4-1小鳥移動功能模塊的類圖

對小鳥移動功能模塊的類圖進行細化分析后,得到該子功能模塊相關(guān)類和

方法的描述表,如下表4-1所示。

表4-1小鳥移動功能模塊相關(guān)類和方法的描述表

類名Bird

描述小鳥類

屬性bird、bird_up、bird_down、frame

方法draw_bird()、decline()

類名Windows

描述游戲界面類

屬性FPS

方法ready_window()、game_window()、end_window

4.2管道繪制功能模塊設(shè)計

4.2.1管道繪制功能模塊說明

游戲啟動后,在頁面上不斷繪制管道、添加管道,管道不停自右往左移動,

超出頁面一定范圍后,刪除管道。

4.2.2管道繪制功能模塊詳細設(shè)計

對各子功能進行分析與設(shè)計需通過需求分析和概要設(shè)計,能得到管道繪制

功能模塊的靜態(tài)結(jié)構(gòu)類圖,如圖4-2所示。

18

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

圖4-2管道繪制功能模塊的類圖

本子功能模塊的相關(guān)類和方法描述表是在對管線繪制功能模塊類圖進行詳

細分析后得出的,如表4-2所示。

表4-2管道繪制功能模塊相關(guān)類和方法的描述表

類名Pipe

描述管道類

屬性pipes、pipe_body、pipe_end

方法draw_pipes()

類名Windows

描述游戲界面類

屬性FPS

方法ready_window()、game_window()、end_window

4.3碰撞功能模塊設(shè)計

4.3.1碰撞功能模塊說明

游戲過程中,小鳥一旦和天花板或地板或管道發(fā)生觸碰,觸發(fā)碰撞功能,游

戲結(jié)束。

4.3.2碰撞功能模塊詳細設(shè)計

對各子功能進行分析與設(shè)計需通過需求分析和概要設(shè)計,能得到管道繪制

功能模塊的靜態(tài)結(jié)構(gòu)類圖,如圖4-3所示。

19

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

圖4-3碰撞功能模塊的類圖

本子功能模塊的相關(guān)類和方法描述表是在對碰撞功能模塊類圖進行詳細分

析后得出的,如表4-3所示。

表4-3碰撞功能模塊相關(guān)類和方法的描述表

類名Bird

描述小鳥類

屬性bird、bird_up、bird_down、frame

方法draw_bird()、decline()

類名Pipe

描述管道類

屬性pipes、pipe_body、pipe_end

方法draw_pipes()

類名Collide

描述碰撞類

屬性

方法collide()

20

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

4.4重置功能模塊設(shè)計

4.4.1重置功能模塊說明

游戲結(jié)束,重置游戲。

4.4.2重置功能模塊詳細設(shè)計

對各子功能進行分析與設(shè)計需通過需求分析和概要設(shè)計,能得到管道繪制

功能模塊的靜態(tài)結(jié)構(gòu)類圖,如圖4-4所示。

圖4-4重置功能模塊的類圖

本子功能模塊的相關(guān)類和方法描述表是在對重置功能模塊類圖進行詳細分

析后得出的,如表4-4所示。

表4-4重置功能模塊相關(guān)類和方法的描述表

類名Bird

描述小鳥類

屬性bird、bird_up、bird_down、frame

方法draw_bird()、decline()

21

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

類名Pipe

描述管道類

屬性pipes、pipe_body、pipe_end

方法draw_pipes()

類名Reset

描述重置類

屬性width、height、frame、FPS、pipes、bird、s

方法reset()

5系統(tǒng)實現(xiàn)

5.1小鳥移動功能實現(xiàn)

5.1.1小鳥移動功能界面設(shè)計

小鳥移動功能界面,如圖5-1所示:該界面主要包括小鳥

圖5-1小鳥移動界面

5.1.2小鳥移動功能模塊核心代碼實現(xiàn):

步驟1:定義變量

bird=[70,height//2]

bird_up=pygame.image.load('images/bird_up.png')

bird_down=pygame.image.load('images/bird_down.png')

22

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

clock=pygame.time.Clock()

步驟2:定義類

classBird:

defdraw_bird(self,x,y):

globalframe

if0<=frame<=30:

screen.blit(bird_up,(x,y))

frame+=1

elif30<frame<=60:

screen.blit(bird_down,(x,y))

frame+=1

ifframe==60:

frame=0

defdecline(self):

bird[1]+=s

birdClass=Bird()

步驟3:游戲界面

defgame_window(self):

whileTrue:

foreventinpygame.event.get():

ifevent.type==pygame.QUIT:

quit()

ifevent.type==pygame.KEYDOWNandevent.key==pygame.K_b:

return

ifevent.type==pygame.KEYDOWNandevent.key==pygame.K_SPACE:

bird[1]-=45

screen.blit(background,(0,0))

birdClass.draw_bird(bird[0],bird[1])

pygame.display.update()

clock.tick(FPS)

5.2管道繪制功能實現(xiàn)

5.2.1管道繪制功能界面設(shè)計

管道繪制功能界面,如圖5-2所示:該界面主要包括小鳥、管道

23

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

圖5-2管道繪制界面

5.2.2管道繪制功能模塊核心代碼實現(xiàn):

步驟1:定義變量

pipe_body=pygame.image.load('images/pipe_body.png')

pipe_end=pygame.image.load('images/pipe_end.png')

步驟2:定義類

#pipes=[[200,4]]

#154

classPipe:

defdraw_pipes(self):

forainrange(len(pipes)):

forbinrange(pipes[a][1]):#pipe_top4+1

screen.blit(pipe_body,(pipes[a][0],b*32))#空白4

forbinrange(pipes[a][1]+6,16):#pipe_bottom5+1

screen.blit(pipe_body,(pipes[a][0],b*32))

screen.blit(pipe_end,(pipes[a][0],(pipes[a][1])*32))

screen.blit(pipe_end,(pipes[a][0],(pipes[a][1]+5)*32))

pipes[a][0]-=1

pipeClass=Pipe()

步驟3:游戲界面

defgame_window(self):

whileTrue:

foreventinpygame.event.get():

ifevent.type==pygame.QUIT:

24

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

quit()

ifevent.type==pygame.KEYDOWNandevent.key==pygame.K_b:

return

ifevent.type==pygame.KEYDOWNandevent.key==pygame.K_SPACE:

bird[1]-=45

screen.blit(background,(0,0))

birdClass.draw_bird(bird[0],bird[1])

#pine

iflen(pipes)<=5:

x=pipes[-1][0]+220

y=random.randint(1,7)

pipes.append([x,y])

ifpipes[0][0]<-100:

pipes.pop(0)

pipeClass.draw_pipes()

birdClass.decline()

ifnotcollideClass.collide():

windowsClass.end_window()

pygame.display.update()

clock.tick(FPS)

5.3碰撞功能實現(xiàn)

5.3.1碰撞功能界面設(shè)計

碰撞功能界面,如圖5-3所示:該界面主要包括小鳥、管道

圖5-3碰撞界面

5.3.2碰撞功能模塊核心代碼實現(xiàn):

25

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

步驟1:定義變量

bird=[70,height//2]

#x坐標管道開口的位置

pipes=[[200,4]]

步驟2:定義類

#pipe(pipes[0][0],pipes[0][1]*32)

#bird(bird[0],bird[1])32*3280*32

classCollide:

defcollide(self):

ifpipes[0][0]-32<bird[0]<pipes[0][0]+80:

ifbird[1]<(pipes[0][1]+1)*32orbird[1]>(pipes[0][1]+4)*32:

peng.play()

returnFalse

ifbird[1]<0orbird[1]>height-32:

peng.play()

returnFalse

returnTrue

步驟3:游戲界面

defgame_window(self):

whileTrue:

foreventinpygame.event.get():

ifevent.type==pygame.QUIT:

quit()

ifevent.type==pygame.KEYDOWNandevent.key==pygame.K_b:

return

ifevent.type==pygame.KEYDOWNandevent.key==pygame.K_SPACE:

bird[1]-=45

screen.blit(background,(0,0))

birdClass.draw_bird(bird[0],bird[1])

#pine

iflen(pipes)<=5:

x=pipes[-1][0]+220

y=random.randint(1,7)

pipes.append([x,y])

ifpipes[0][0]<-100:

pipes.pop(0)

pipeClass.draw_pipes()

birdClass.decline()

ifnotcollideClass.collide():

26

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

windowsClass.end_window()

pygame.display.update()

clock.tick(FPS)

5.4重置功能實現(xiàn)

5.4.1重置功能界面設(shè)計

重置功能界面,如圖5-4所示:該界面主要包括游戲首頁

圖5-4重置界面

5.4.2重置功能模塊核心代碼實現(xiàn):

步驟1:定義類

classReset:

defreset(self):

windowsClass.ready_window()

globalwidth,height,frame,FPS,pipes,bird,s

width=889

height=480

frame=0#當前幀

FPS=60#屏幕刷新率

#x坐標管道開口的位置

pipes.clear()

bird.clear()

pipes=[[200,4]]

bird=[20,height//2]

#decline

s=1

27

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

resetClass=Reset()

步驟2:游戲界面

defready_window(self):

whileTrue:

foreventinpygame.event.get():

ifevent.type==pygame.QUIT:

quit()

ifevent.type==pygame.KEYDOWNandevent.key==pygame.K_b:

return

screen.blit(background,(0,0))

screen.blit(title,((width/2)-89,60))

screen.blit(ready,((width/2)-98,150))

screen.blit(tutorial,((width/2)-57,230))

birdClass.draw_bird((width/2)-57,26)

pygame.display.update()

clock.tick(FPS)

6系統(tǒng)測試

在游戲設(shè)計與實現(xiàn)完成之后,根據(jù)需求分析,設(shè)計測試用例,測試用例如下

6.1小鳥移動功能測試

主要測試小鳥移動功能能否如預(yù)期實現(xiàn),如表6-1所示。

表6-1小鳥移動功能測試用例

測試用例編號Test01

測試項目小鳥移動功能測試

測試內(nèi)容小鳥移動

前提條件游戲啟動成功

1、運行程序

測試步驟2、開始游戲

3、點擊空格鍵

預(yù)期結(jié)果小鳥移動成功

28

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

測試結(jié)果和結(jié)論小鳥移動成功

6.2管道繪制功能測試

主要測試管道繪制功能能否如預(yù)期實現(xiàn),如表6-2、6-3、6-4、6-5所示。

表6-2繪制管道功能測試用例

測試用例編號Test02

測試項目管道繪制功能測試

測試內(nèi)容繪制管道

前提條件游戲啟動成功

1、運行程序

測試步驟2、游戲運行

3、出現(xiàn)管道

預(yù)期結(jié)果成功繪制管道

測試結(jié)果和結(jié)論成功繪制管道

表6-3添加管道功能測試用例

測試用例編號Test03

測試項目添加管道功能測試

測試內(nèi)容添加管道

前提條件游戲啟動成功

1、運行程序

測試步驟2、游戲運行

3、管道不斷添加

預(yù)期結(jié)果管道成功添加

測試結(jié)果和結(jié)論管道成功添加

表6-4刪除管道功能測試用例

測試用例編號Test04

測試項目刪除管道功能測試

測試內(nèi)容刪除管道

前提條件游戲啟動成功

測試步驟1、運行程序

29

湖南商務(wù)職業(yè)技術(shù)學院畢業(yè)設(shè)計

2、游戲運行

3、刪除管道

預(yù)期結(jié)果管道成功刪除

測試結(jié)果和結(jié)論管道成功刪除

表6-5移動管道功能測試用例

測試用例編號Test05

測試項目移動管道功能測試

測試內(nèi)容移動管道

前提條件游戲啟動成功

1、運行程序

測試步驟2、游戲運行

3、管道自右往左移動

預(yù)期結(jié)果管道自右往左移動

測試結(jié)果和結(jié)論管道自右往左移動

6.3碰撞功能測試

主要測試碰撞功能能否如預(yù)期實現(xiàn),如表6-6、6-7、6-8所示。

表6-6碰撞天花板功能測試用例

測試用例編號Test06

測試項目碰撞天花板功能測試

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論