溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python外星人入侵游戲重構(gòu)鍵盤鼠標(biāo)響應(yīng)的方法是什么

發(fā)布時(shí)間:2021-11-30 15:43:44 來源:億速云 閱讀:104 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“Python外星人入侵游戲重構(gòu)鍵盤鼠標(biāo)響應(yīng)的方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Python外星人入侵游戲重構(gòu)鍵盤鼠標(biāo)響應(yīng)的方法是什么”吧!

用法分析

在大型項(xiàng)目中,經(jīng)常需要在添加新代碼前重構(gòu)既有代碼。重構(gòu)旨在簡(jiǎn)化既有代碼的結(jié)構(gòu),使其更容易擴(kuò)展。在本節(jié)中,我們將創(chuàng)建一個(gè)名為game_functions 的新模塊,它將存儲(chǔ)大量讓游戲《外星人入侵》運(yùn)行的函數(shù)。通過創(chuàng)建模塊game_functions ,可避免alien_invasion.py太長(zhǎng),并使其邏輯更容易理解。

將check_events() 和update_screen放在一個(gè)名為game_functions 的模塊中 

代碼實(shí)例

#======================================================
#功能:game_functions 類
#作者:python小哥
#時(shí)間:2020-7-5
#微信公眾號(hào):DJXY00001
#微信名稱:Python提升課堂
#Version:1.0
#======================================================
import sysimport pygamedef check_events():    """響應(yīng)按鍵和鼠標(biāo)事件"""    for event in pygame.event.get():        if event.type == pygame.QUIT:            sys.exit()def update_screen(ai_settings, screen, ship):    """更新屏幕上的圖像,并切換到新屏幕"""    # 每次循環(huán)時(shí)都重繪屏幕    screen.fill(ai_settings.bg_color)    ship.blitme()    # 讓最近繪制的屏幕可見    pygame.display.flip()

這個(gè)模塊中導(dǎo)入了事件檢查循環(huán)要使用的sys 和pygame 。當(dāng)前,函數(shù)check_events() 不需要任何形參,其函數(shù)體復(fù)制了alien_invasion.py的事件循環(huán)。

下面來修改alien_invasion.py,使其導(dǎo)入模塊game_functions ,并將事件循環(huán)替換為對(duì)函數(shù)check_events() 的調(diào)用。屏幕更新代碼替換為update_screen函數(shù)。

#======================================================
#功能:alien_invasion類
#作者:python小哥
#時(shí)間:2020-7-5
#微信公眾號(hào):DJXY00001
#微信名稱:Python提升課堂
#Version:1.0
#======================================================
import pygamefrom settings import Settingsfrom ship import Shipimport game_functions as gfdef run_game():  --snip--  # 開始游戲主循環(huán)  while True:    gf.check_events()    gf.update_screen(ai_settings, screen, ship)

其中--snip--代表延續(xù)前節(jié)的內(nèi)容。

在主程序文件中,不再需要直接導(dǎo)入sys ,因?yàn)楫?dāng)前只在模塊game_functions 中使用了它。出于簡(jiǎn)化的目的,我們給導(dǎo)入的模塊game_functions 指定了別名gf 。

代碼運(yùn)行輸出:

Python外星人入侵游戲重構(gòu)鍵盤鼠標(biāo)響應(yīng)的方法是什么

我們一開始只想使用一個(gè)文件,因此沒有立刻引入模塊game_functions 。這讓你能夠了解實(shí)際的開發(fā)過程:一開始將代碼編寫得盡可能簡(jiǎn)單,并在項(xiàng)目越來越復(fù)雜時(shí)進(jìn)行重構(gòu)。

到此,相信大家對(duì)“Python外星人入侵游戲重構(gòu)鍵盤鼠標(biāo)響應(yīng)的方法是什么”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI