0 項目簡介
?? Hi,各位同學(xué)好呀,這里是L學(xué)長!
??今天向大家分享一個今年(2022)最新完成的畢業(yè)設(shè)計項目作品
外星人入侵小游戲設(shè)計與實現(xiàn)
?? 學(xué)長根據(jù)實現(xiàn)的難度和等級對項目進行評分(最低0分,滿分5分)
-
難度系數(shù):3分
-
工作量:3分
-
創(chuàng)新點:4分
-
項目獲?。?/strong>https://gitee.com/sinonfin/system-sharing文章來源地址http://www.zghlxwxcb.cn/news/detail-777446.html
1 游戲介紹
童年經(jīng)典紅白機外星人入侵小游戲,現(xiàn)在我們用python寫了個低配版的。
游戲簡介:
玩家通過鼠標(biāo)控制飛船行動和射擊,若能在敵人到達游戲界面底端之前消滅所有敵人,則游戲勝利,否則游戲失敗。
2 實現(xiàn)效果
3 開發(fā)工具
3.1 環(huán)境配置
-
Python版本:3.6.4
-
相關(guān)模塊:
-
pygame模塊;
-
以及一些Python自帶的模塊。
3.2 Pygame介紹
簡介
Pygame是一系列專門為編寫電子游戲而設(shè)計的Python模塊(modules)。Pygame在已經(jīng)非常優(yōu)秀的SDL庫的基礎(chǔ)上增加了許多功能。這讓你能夠用Python語言編寫出豐富多彩的游戲程序。
Pygame可移植性高,幾乎能在任何平臺和操作系統(tǒng)上運行。
Pygame已經(jīng)被下載過數(shù)百萬次。
Pygame免費開源。它在LGPL許可證(Lesser General Public License,GNU寬通用公共許可證)下發(fā)行。使用Pygame,你可以創(chuàng)造出免費開源,可共享,或者商業(yè)化的游戲。詳情請見LGPL許可證。
優(yōu)點
-
能夠輕松使用多核CPU(multi core CPUs) :如今雙核CPU很常用,8核CPU在桌面系統(tǒng)中也很便宜,而利用好多核系統(tǒng),能讓你在你的游戲中實現(xiàn)更多東西。特定的pygame函數(shù)能夠釋放令人生畏的python GIL(全局解釋器鎖),這幾乎是你用C語言才能做的事。
-
核心函數(shù)用最優(yōu)化的C語言或匯編語言編寫:C語言代碼通常比Python代碼運行速度快10-20倍。而匯編語言編寫的代碼(assembly code)比Python甚至快到100多倍。
-
安裝便捷:一般僅需包管理程序或二進制系統(tǒng)程序便能安裝。
-
真正地可移植:支持Linux (主要發(fā)行版), Windows (95, 98, ME, 2000, XP, Vista, 64-bit Windows,), Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX等操作系統(tǒng).也能支持AmigaOS, Dreamcast, Atari, AIX, OSF/Tru64, RISC OS, SymbianOS and OS/2,但是還沒有受到官方認可。你也可以在手持設(shè)備,游戲控制臺, One Laptop Per Child (OLPC) computer項目的電腦等設(shè)備中使用pygame.
-
用法簡單:無論是小孩子還是大人都能學(xué)會用pygame來制作射擊類游戲。
-
很多Pygame游戲已發(fā)行:其中包括很多游戲大賽入圍作品、非常受歡迎的開源可分享的游戲。
-
由你來控制主循環(huán):由你來調(diào)用pygame的函數(shù),pygame的函數(shù)并不需要調(diào)用你的函數(shù)。當(dāng)你同時還在使用其他庫來編寫各種各種的程序時,這能夠為你提供極大的掌控權(quán)。
-
不需要GUI就能使用所有函數(shù):僅在命令行中,你就可以使用pygame的某些函數(shù)來處理圖片,獲取游戲桿輸入,播放音樂……
-
對bug反應(yīng)迅速:很多bug在被上報的1小時內(nèi)就能被我們修復(fù)。雖然有時候我們確實會卡在某一個bug上很久,但大多數(shù)時候我們都是很不錯的bug修復(fù)者。如今bug的上報已經(jīng)很少了,因為許多bug早已被我們修復(fù)。
-
代碼量少:pygame并沒有數(shù)以萬計的也許你永遠用不到的冗雜代碼。pygame的核心代碼一直保持著簡潔特點,其他附加物諸如GUI庫等,都是在核心代碼之外單獨設(shè)計研發(fā)的。
-
模塊化:你可以單獨使用pygame的某個模塊。想要換著使用一個別的聲音處理庫?沒問題。pygame的很多核心模塊支持獨立初始化與使用。
最小開發(fā)框架
import pygame,sys #sys是python的標(biāo)準(zhǔn)庫,提供Python運行時環(huán)境變量的操控
pygame.init() #內(nèi)部各功能模塊進行初始化創(chuàng)建及變量設(shè)置,默認調(diào)用
size = width,height = 800,600 #設(shè)置游戲窗口大小,分別是寬度和高度
screen = pygame.display.set_mode(size) #初始化顯示窗口
pygame.display.set_caption("小游戲程序") #設(shè)置顯示窗口的標(biāo)題內(nèi)容,是一個字符串類型
while True: #無限循環(huán),直到Python運行時退出結(jié)束
for event in pygame.event.get(): #從Pygame的事件隊列中取出事件,并從隊列中刪除該事件
if event.type == pygame.QUIT: #獲得事件類型,并逐類響應(yīng)
sys.exit() #用于退出結(jié)束游戲并退出
pygame.display.update() #對顯示窗口進行更新,默認窗口全部重繪
代碼執(zhí)行流程
4 具體實現(xiàn)
4.1 實現(xiàn)游戲精靈類
首先,我們來明確一下游戲需要哪些角色。
① 我方飛船
我方飛船通過鼠標(biāo)控制,其需要具備射擊、移動和被敵人擊中后爆炸等能力。
因此,該游戲精靈類的代碼實現(xiàn)如下:
② 敵人
敵人由電腦自動控制,其需要具備射擊、移動和被我方擊中后爆炸等能力。
因此,該游戲精靈類的代碼實現(xiàn)如下:
③ UFO
UFO由電腦控制,可以看作是彩蛋,擊中這個彩蛋,你將獲得大量的獎勵分數(shù),當(dāng)獎勵分數(shù)累積到一定量時,你將獲得額外的生命值獎勵。
UFO類只需要具備移動和被我方擊中后爆炸的能力即可。
因此,該游戲精靈類的代碼實現(xiàn)如下:
④ 子彈類
我方飛船和敵人射擊時都需要用到子彈,其應(yīng)當(dāng)具備不斷向前移動的能力。
我方子彈類的代碼實現(xiàn)如下:
敵方子彈類的代碼實現(xiàn)如下:
4.2 實現(xiàn)游戲主循環(huán)
先初始化,包括加載必要的游戲素材和實例化之前定義的游戲精靈類等等:
然后就可以進入游戲主循環(huán)啦~
首先是按鍵檢測,來實現(xiàn)用戶與游戲的交互:
接下來就是根據(jù)用戶操作的結(jié)果以及電腦自動進行的操作獲得的結(jié)果來實現(xiàn)游戲畫面更新。當(dāng)然,更新之前需要根據(jù)游戲規(guī)則對一些游戲精靈進行碰撞檢測,包括:敵方子彈和我方飛船以及我方子彈和敵方等。
具體的代碼實現(xiàn)如下:
最后就是把一些游戲相關(guān)的數(shù)據(jù)實時顯示在游戲界面上以供玩家參考:
4.3 定義游戲結(jié)束界面
我們只需要根據(jù)玩家是否取得了游戲勝利來展示游戲結(jié)束界面即可:文章來源:http://www.zghlxwxcb.cn/news/detail-777446.html
5 最后
項目獲?。?/strong>https://gitee.com/sinonfin/system-sharing
到了這里,關(guān)于python項目分享 - python外星人入侵小游戲的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!