Python是進(jìn)入到互聯(lián)網(wǎng)行業(yè)比較輕松的一門編程語(yǔ)言,對(duì)于零基礎(chǔ)學(xué)員來(lái)說(shuō)選擇Python技術(shù)是非常明智的,Python不僅可以進(jìn)行數(shù)據(jù)分析,還可以制作游戲,接下來(lái)小編就為大家介紹本期的Python培訓(xùn)教程-教你做一款飛機(jī)大戰(zhàn)游戲框架。
Python培訓(xùn)教程分享:教你做一款飛機(jī)大戰(zhàn)游戲框架
1、游戲窗口
經(jīng)過(guò)安裝Pygame,以及了解Pygame的核心功能之后,可以開(kāi)始編寫一個(gè)小的游戲案例了。下面將制作一個(gè)飛機(jī)大戰(zhàn)游戲,游戲內(nèi)容是敵對(duì)的兩架飛機(jī)互相射擊。
游戲開(kāi)始前需要調(diào)用初始化函數(shù),代碼如下:
pygame.init()
否則,在本案例中輸出漢字時(shí),會(huì)提示錯(cuò)誤,字體沒(méi)有初始化。
創(chuàng)建一個(gè)游戲窗口,加載背景,設(shè)置窗口標(biāo)題和圖標(biāo)等,代碼如下:
# 創(chuàng)建一個(gè)游戲窗口
surface = pygame.display.set_mode((480, 652))
# 加載背景圖片
background = pygame.image.load('./img/background.png')
# 調(diào)整連續(xù)按鍵事件生成時(shí)間
pygame.key.set_repeat(50, 50)
# 設(shè)置窗口標(biāo)題
pygame.display.set_caption('飛機(jī)大戰(zhàn)')
# 設(shè)置窗口圖標(biāo)
pygame.display.set_icon(pygame.image.load('./img/icon72x72.png'))
2、游戲循環(huán)
飛機(jī)大戰(zhàn)中設(shè)計(jì)了游戲循環(huán),還設(shè)計(jì)了玩家飛機(jī)、敵機(jī)、玩家子彈和敵人子彈四個(gè)類,以及碰撞和控制兩個(gè)功能函數(shù)。另外,還有游戲啟動(dòng)界面和結(jié)束界面等函數(shù)。
整個(gè)游戲的游戲循環(huán)如下:
①繪制背景圖片。
?、诳刂仆婕绎w機(jī),主要響應(yīng)玩家的操作。例如,玩家點(diǎn)擊關(guān)閉按鈕,則退出游戲;玩家按下左箭頭鍵,則飛機(jī)向左移動(dòng);玩家按下右箭頭鍵,則飛機(jī)向右移動(dòng);玩家按下空格鍵,則飛機(jī)發(fā)射子彈。
?、劾L制玩家飛機(jī),包括正常狀態(tài)和被擊毀狀態(tài);繪制玩家飛機(jī)發(fā)射的子彈。
④繪制敵機(jī),包括正常狀態(tài)和被擊毀狀態(tài);繪制敵機(jī)發(fā)射的子彈。
?、菘刂茢硻C(jī)的移動(dòng)。
?、迿z測(cè)玩家飛機(jī)與敵機(jī)發(fā)射子彈的碰撞情況。
?、邫z測(cè)敵機(jī)和玩家飛機(jī)發(fā)射子彈的碰撞情況。
⑧更新游戲窗口。
游戲循環(huán)的具體實(shí)現(xiàn)代碼如下:
while True:
surface.blit(background, (0, 0)) # 繪制背景圖片
kongzhi(hero) # 控制玩家飛機(jī)
hero.hero_display() # 繪制玩家飛機(jī)
enemyplan.display() # 繪制敵機(jī)
enemyplan.move() # 控制敵機(jī)的移動(dòng)
impact(hero, enemyplan.biu_list) # 檢測(cè)玩家飛機(jī)與敵機(jī)發(fā)射子彈的碰撞情況
impact(enemyplan, hero.biu_list) # 檢測(cè)敵機(jī)和玩家飛機(jī)發(fā)射子彈的碰撞情況
pygame.display.update() # 更新游戲窗口
以上就是相關(guān)Python培訓(xùn)教程,希望對(duì)大家有所幫助,如果你還有更多想要了解的Python培訓(xùn)教程以及疑問(wèn)或者想要了解的,可以在線咨詢我們客服,有專業(yè)老師隨時(shí)為你服務(wù)。