您好,登錄后才能下訂單哦!
這篇文章主要講解了“Python外星人入侵游戲開發中怎么添加飛船圖像”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python外星人入侵游戲開發中怎么添加飛船圖像”吧!
用法分析
下面將飛船加入到游戲中。為了在屏幕上繪制玩家的飛船,我們將加載一幅圖像,再使用Pygame方法blit() 繪制它。
選擇用于表示飛船的圖像后,需要將其顯示到屏幕上。我們將創建一個名為ship 的模塊,其中包含Ship 類,它負責管理飛船的大部分行為。
代碼實例
#======================================================
#功能:ship 類
import pygameclass Ship(): def __init__(self, screen): """初始化飛船并設置其初始位置""" self.screen = screen # 加載飛船圖像并獲取其外接矩形 ? self.image = pygame.image.load('images/ship.bmp') ? self.rect = self.image.get_rect() ? self.screen_rect = screen.get_rect() # 將每艘新飛船放在屏幕底部中央 ? self.rect.centerx = self.screen_rect.centerx self.rect.bottom = self.screen_rect.bottom ? def blitme(self): """在指定位置繪制飛船""" self.screen.blit(self.image, self.rect)
首先,我們導入了模塊pygame 。Ship 的方法__init__() 接受兩個參數:引用self 和screen ,其中后者指定了要將飛船繪制到什么地方。為加載圖像,我們調用了pygame.image.load() (見?)。這個函數返回一個表示飛船的surface,而我們將這個surface存儲到了self.image 中。
加載圖像后,我們使用get_rect() 獲取相應surface的屬性rect (見?)
我們將把飛船放在屏幕底部中央。為此,首先將表示屏幕的矩形存儲在self.screen_rect 中(見?),再將self.rect.centerx (飛船中心的x 坐標)設置為表示屏幕的矩形的屬性centerx (見?)
在?處,我們定義了方法blitme() ,它根據self.rect 指定的位置將圖像繪制到屏幕上。
#======================================================
#功能:alien_invasion類
import sysimport pygamefrom settings import Settingsfrom ship import Shipdef run_game(): # 初始化游戲并創建一個屏幕對象 pygame.init() ai_settings = Settings() screen = pygame.display.set_mode((ai_settings.screen_width, ai_settings.screen_height)) pygame.display.set_caption("外星人入侵") # 創建一艘飛船 ship = Ship(screen) # 開始游戲的主循環 while True: # 監視鍵盤和鼠標事件 for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() # 每次循環時都重繪屏幕 screen.fill(ai_settings.bg_color) ship.blitme() # 讓最近繪制的屏幕可見 pygame.display.flip()run_game()
我們導入Ship 類,并在創建屏幕后創建一個名為ship 的Ship 實例。必須在主while 循環前面創建該實例(見程序第12行ship = Ship(screen)),以免每次循環時都創建一艘飛船。填充背景后,我們調用ship.blitme() 將飛船繪制到屏幕上,確保它出現在背景前面(見程序第21行ship.blitme())。
代碼運行輸出:
感謝各位的閱讀,以上就是“Python外星人入侵游戲開發中怎么添加飛船圖像”的內容了,經過本文的學習后,相信大家對Python外星人入侵游戲開發中怎么添加飛船圖像這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。