您好,登錄后才能下訂單哦!
這篇文章主要介紹“Python怎么實現游戲中駕駛飛船不斷向右效果”,在日常操作中,相信很多人在Python怎么實現游戲中駕駛飛船不斷向右效果問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python怎么實現游戲中駕駛飛船不斷向右效果”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
用法分析
玩家按住右箭頭鍵不放時,我們希望飛船不斷地向右移動,直到玩家松開為止。我們將讓游戲檢測pygame.KEYUP 事件,以便玩家松開右箭頭鍵時我們能夠知道這一點;然后,我們將結合使用KEYDOWN 和KEYUP 事件,以及一個名為moving_right 的標志來實現持續移動。
飛船不動時,標志moving_right 將為False 。玩家按下右箭頭鍵時,我們將這個標志設置為True ;而玩家松開時,我們將這個標志重新設置為False 。
飛船的屬性都由Ship 類控制,因此我們將給這個類添加一個名為moving_right 的屬性和一個名為update() 的方法。方法update() 檢查標志moving_right 的狀態,如果這個標志為True ,就調整飛船的位置。每當需要調整飛船的位置時,我們都調用這個方法。
代碼實例
#======================================================
#功能:ship類
#作者:python小哥
#時間:2020-7-10
#微信公眾號:DJXY00001
#微信名稱:Python提升課堂
#Version:1.0
#======================================================
class Ship():def __init__(self, screen): --snip-- # 將每艘新飛船放在屏幕底部中央 self.rect.centerx = self.screen_rect.centerx self.rect.bottom = self.screen_rect.bottom # 移動標志 ? self.moving_right = False ? def update(self): """根據移動標志調整飛船的位置""" if self.moving_right: self.rect.centerx += 1 def blitme(self): --snip--
在方法__init__() 中,我們添加了屬性self.moving_right ,并將其初始值設置為False (見?)。接下來,我們添加了方法update() ,它在前述標志為True 時向右移動飛船(見?)。
下面來修改check_events() ,使其在玩家按下右箭頭鍵時將moving_right 設置為True ,并在玩家松開時將moving_right 設置為False :
#======================================================
#功能:game_functions 類
#作者:python小哥
#時間:2020-7-10
#微信公眾號:DJXY00001
#微信名稱:Python提升課堂
#Version:1.0
#======================================================
def check_events(ship): """響應按鍵和鼠標事件""" for event in pygame.event.get(): --snip-- elif event.type == pygame.KEYDOWN: if event.key == pygame.K_RIGHT: # 修改向右移動飛船標志位? ship.moving_right = True? elif event.type == pygame.KEYUP: if event.key == pygame.K_RIGHT: ship.moving_right = False
在?處,我們修改了游戲在玩家按下右箭頭鍵時響應的方式:不直接調整飛船的位置,而只是將moving_right 設置為True 。在?處,我們添加了一個新的elif 代碼塊,用于響應KEYUP 事件:玩家松開右箭頭鍵(K_RIGHT )時,我們將moving_right 設置為False 。
最后,我們需要修改alien_invasion.py 中的while 循環,以便每次執行循環時都調用飛船的方法update() :
#======================================================
#功能:alien_invasion類
#作者:python小哥
#時間:2020-7-10
#微信公眾號:DJXY00001
#微信名稱:Python提升課堂
#Version:1.0
#======================================================
# 開始游戲主循環while True: gf.check_events(ship) ship.update() gf.update_screen(ai_settings, screen, ship)
到此,關于“Python怎么實現游戲中駕駛飛船不斷向右效果”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。