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!

推薦閱讀: