Python?pygame繪制游戲圖像
前言
本節(jié),我們將使用pygame模塊完成飛機大戰(zhàn)游戲的實戰(zhàn)開發(fā),飛機大戰(zhàn)游戲的簡要概括如下:
- 把一些靜止的圖像繪制到游戲窗口中
- 根據(jù)用戶的交互或其他情況,移動這些圖像,產(chǎn)生動畫效果
- 根據(jù)圖像之間是否發(fā)生重疊,判斷敵機是否被摧毀等其他情況
1. 理解圖像并實現(xiàn)圖像繪制
- 在游戲中,能夠看到的游戲元素大多都是圖像,圖像文件初始是保存在磁盤上的,如果需要使用,第一步就需要被加載到內(nèi)存。
- 要在屏幕上看到一個圖像的內(nèi)容,需要按照三個步驟:
- 使用
pygame.image.load()
加載圖像的數(shù)據(jù) - 使用游戲屏幕對象,調(diào)用
blit
方法將圖像繪制到指定位置(blit方法接收兩個參數(shù),第一個參數(shù)為圖像地址,第二個參數(shù)為圖像在屏幕中繪制的位置) - 調(diào)用
pygame.display.update()
方法更新整個屏幕的顯示
- 使用
提示:要想在屏幕上看到繪制的結(jié)果,就一定要調(diào)用pygame.display.update()
方法
2. 代碼演練-繪制背景圖像
需求:
- 加載background.png創(chuàng)建背景
- 將背景繪制在屏幕的(0,0)位置
- 調(diào)用屏幕更新顯示背景圖像
具體代碼演示如下所示:注意使用update方法更新背景圖像,否則可能導(dǎo)致不顯示圖像。
import pygame pygame.init() # 創(chuàng)建游戲的窗口 640*642 screen = pygame.display.set_mode((640, 642)) # 繪制背景圖像 # 1> 加載圖像數(shù)據(jù) bg = pygame.image.load("./background.jpg") # 2> blit繪制圖像 screen.blit(bg, (0, 0)) # 3> update更新屏幕顯示 pygame.display.update() while True: pass pygame.quit()
代碼運行結(jié)果如下圖所示:
3. 代碼演練-繪制英雄圖像
需求:
- 加載mel.png創(chuàng)建英雄飛機
- 將英雄飛機繪制在屏幕的(200,500)位置
- 調(diào)用屏幕更新顯示飛機圖像
繪制英雄飛機具體代碼演示如下所示:
import pygame pygame.init() # 創(chuàng)建游戲的窗口 640*642 screen = pygame.display.set_mode((640, 642)) # 繪制背景圖像 # 1> 加載圖像數(shù)據(jù) bg = pygame.image.load("./background.jpg") # 2> blit繪制圖像 screen.blit(bg, (0, 0)) # 3> update更新屏幕顯示 pygame.display.update() # 繪制英雄的飛機 hero = pygame.image.load("./飛機大戰(zhàn)資料包/images/me1.png") screen.blit(hero, (300, 500)) pygame.display.update() while True: pass pygame.quit()
注意:./飛機大戰(zhàn)資料包/images/me1.png
路徑下的me1.png圖像為透明圖像
- png格式的圖像是支持透明的
- 在繪制圖像時,透明區(qū)域不會顯示任何內(nèi)容
- 但是如果下方已經(jīng)有內(nèi)容,會通過透明區(qū)域顯示出來
代碼運行結(jié)果如下圖所示:在原本背景圖的代碼基礎(chǔ)上,有更新了繪制英雄飛機的相關(guān)代碼,因此,在背景圖中顯示了小飛機。
到此這篇關(guān)于Python pygame繪制游戲圖像的文章就介紹到這了,更多相關(guān)Python繪制游戲圖像內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
對Python Class之間函數(shù)的調(diào)用關(guān)系詳解
今天小編就為大家分享一篇對Python Class之間函數(shù)的調(diào)用關(guān)系詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01自定義Django_rest_framework_jwt登陸錯誤返回的解決
這篇文章主要介紹了自定義Django_rest_framework_jwt登陸錯誤返回的解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10PyQt5 文本輸入框自動補全QLineEdit的實現(xiàn)示例
這篇文章主要介紹了PyQt5 文本輸入框自動補全QLineEdit的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05python opencv圖像處理(素描、懷舊、光照、流年、濾鏡 原理及實現(xiàn))
這篇文章主要介紹了python 基于opencv對圖像進行各種處理,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12pip install python 快速安裝模塊的教程圖解
這篇文章主要介紹了pip install python 如何快速安裝模塊,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10用Python實現(xiàn)網(wǎng)易云音樂的數(shù)據(jù)進行數(shù)據(jù)清洗和可視化分析
這篇文章主要為大家詳細介紹了Python實現(xiàn)Kmeans聚類算法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08python使用tkinter打造三維繪圖系統(tǒng)的示例代碼
Python?的?tkinter?模塊是一個常用的?GUI(圖形用戶界面)工具包,它能夠讓你創(chuàng)建窗口應(yīng)用程序,你可以使用它來構(gòu)建用戶友好的界面,包括按鈕、標(biāo)簽、文本框、列表框等各種控件,本文講給大家介紹如何使用tkinter打造三維繪圖系統(tǒng),需要的朋友可以參考下2023-08-08