Python pygame繪制遊戲圖像
前言
本節,我們將使用pygame模塊完成飛機大戰遊戲的實戰開發,飛機大戰遊戲的簡要概括如下:
- 把一些靜止的圖像繪制到遊戲窗口中
- 根據用戶的交互或其他情況,移動這些圖像,產生動畫效果
- 根據圖像之間是否發生重疊,判斷敵機是否被摧毀等其他情況
1. 理解圖像並實現圖像繪制
- 在遊戲中,能夠看到的遊戲元素大多都是圖像,圖像文件初始是保存在磁盤上的,如果需要使用,第一步就需要被加載到內存。
- 要在屏幕上看到一個圖像的內容,需要按照三個步驟:
- 使用
pygame.image.load()
加載圖像的數據 - 使用遊戲屏幕對象,調用
blit
方法將圖像繪制到指定位置(blit方法接收兩個參數,第一個參數為圖像地址,第二個參數為圖像在屏幕中繪制的位置) - 調用
pygame.display.update()
方法更新整個屏幕的顯示
- 使用
提示:要想在屏幕上看到繪制的結果,就一定要調用pygame.display.update()
方法
2. 代碼演練-繪制背景圖像
需求:
- 加載background.png創建背景
- 將背景繪制在屏幕的(0,0)位置
- 調用屏幕更新顯示背景圖像
具體代碼演示如下所示:註意使用update方法更新背景圖像,否則可能導致不顯示圖像。
import pygame pygame.init() # 創建遊戲的窗口 640*642 screen = pygame.display.set_mode((640, 642)) # 繪制背景圖像 # 1> 加載圖像數據 bg = pygame.image.load("./background.jpg") # 2> blit繪制圖像 screen.blit(bg, (0, 0)) # 3> update更新屏幕顯示 pygame.display.update() while True: pass pygame.quit()
代碼運行結果如下圖所示:
3. 代碼演練-繪制英雄圖像
需求:
- 加載mel.png創建英雄飛機
- 將英雄飛機繪制在屏幕的(200,500)位置
- 調用屏幕更新顯示飛機圖像
繪制英雄飛機具體代碼演示如下所示:
import pygame pygame.init() # 創建遊戲的窗口 640*642 screen = pygame.display.set_mode((640, 642)) # 繪制背景圖像 # 1> 加載圖像數據 bg = pygame.image.load("./background.jpg") # 2> blit繪制圖像 screen.blit(bg, (0, 0)) # 3> update更新屏幕顯示 pygame.display.update() # 繪制英雄的飛機 hero = pygame.image.load("./飛機大戰資料包/images/me1.png") screen.blit(hero, (300, 500)) pygame.display.update() while True: pass pygame.quit()
註意:./飛機大戰資料包/images/me1.png
路徑下的me1.png圖像為透明圖像
- png格式的圖像是支持透明的
- 在繪制圖像時,透明區域不會顯示任何內容
- 但是如果下方已經有內容,會通過透明區域顯示出來
代碼運行結果如下圖所示:在原本背景圖的代碼基礎上,有更新瞭繪制英雄飛機的相關代碼,因此,在背景圖中顯示瞭小飛機。
到此這篇關於Python pygame繪制遊戲圖像的文章就介紹到這瞭,更多相關Python繪制遊戲圖像內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Python pygame項目實戰英雄動畫特效實現
- Pygame庫200行代碼實現簡易飛機大戰
- Python+Pygame實戰之實現小蜜蜂歷險記遊戲
- Pygame鼠標進行圖片的移動與縮放案例詳解
- Pygame Surface創建圖像的實現