首頁 > 軟體

Python pygame繪製遊戲影象

2022-08-11 10:00:15

前言

本節,我們將使用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繪製遊戲影象內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com