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方法更新背景圖像,否則可能導致不顯示圖像。
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)文章
pandas如何使用列表和字典創(chuàng)建?Series
這篇文章主要介紹了pandas如何使用列表和字典創(chuàng)建?Series,pandas 是基于NumPy的一種工具,該工具是為解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的,下文我們就來看看文章是怎樣介紹pandas,需要的朋友也可以參考一下2021-12-12
sklearn和keras的數(shù)據(jù)切分與交叉驗證的實例詳解
這篇文章主要介紹了sklearn和keras的數(shù)據(jù)切分與交叉驗證的實例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
Python3實現(xiàn)旋轉(zhuǎn)數(shù)組的3種算法小結(jié)
旋轉(zhuǎn)數(shù)組是一種常見的數(shù)據(jù)結(jié)構(gòu)問題,通常是指一個有序數(shù)組經(jīng)過旋轉(zhuǎn)后,使得所有元素逆序排列,本文主要介紹了Python3實現(xiàn)旋轉(zhuǎn)數(shù)組的3種算法小結(jié),感興趣的可以了解一下2023-12-12
python讀取csv文件并把文件放入一個list中的實例講解
下面小編就為大家分享一篇python讀取csv文件并把文件放入一個list中的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
Python面向?qū)ο笾惖膬?nèi)置attr屬性示例
這篇文章主要介紹了Python面向?qū)ο笾惖膬?nèi)置attr屬性,結(jié)合實例形式分析了Python面向?qū)ο笾蓄惖膶傩韵嚓P(guān)定義、賦值、修改等操作技巧與注意事項,需要的朋友可以參考下2018-12-12

