Pygame精靈和精靈組

2021-10-02 23:33:09 字數 1573 閱讀 9082

pygame 提供了兩個類

pygame.sprite.sprite —— 儲存 影象資料 image 和 位置 rect 的 物件

pygame.sprite.group

精靈在遊戲開發中,通常把 顯示影象的物件 叫做精靈 sprite

精靈 需要 有 兩個重要的屬性

image 要顯示的影象

rect 影象要顯示在螢幕的位置

預設的 update() 方法什麼事情也沒做

子類可以重寫此方法,在每次重新整理螢幕時,更新精靈位置

注意:pygame.sprite.sprite 並沒有提供 image 和 rect 兩個屬性

需要程式設計師從 pygame.sprite.sprite 派生子類

並在 子類 的 初始化方法 中,設定 image 和 rect 屬性

精靈組乙個 精靈組 可以包含多個 精靈 物件

呼叫 精靈組 物件的 update() 方法

可以 自動 呼叫 組內每乙個精靈 的 update() 方法

呼叫 精靈組 物件的 draw(螢幕物件) 方法

可以將 組內每乙個精靈 的 image 繪製在 rect 位置

注意:仍然需要呼叫 pygame.display.update() 才能在螢幕看到最終結果

派生精靈子類

新建 plane_sprites.py 檔案

定義 gamesprite 繼承自 pygame.sprite.sprite

注意如果乙個類的 父類 不是 object

在重寫 初始化方法 時,一定要 先 super() 一下父類的init方法

保證父類中實現的init**能夠被正常執行

**:#導pygame的包

import pygame
#定義乙個遊戲精靈基類

class gamesprite(pygame.sprite.sprite):
#初始化方法 引數(路徑,英雄飛機移動速度)

def __init__(self,image_name,speed):
#呼叫父類的初始化方法

super().__init__()
#載入影象

self.image = pygame.image.load(image_name)
提示

image 的 get_rect() 方法,可以返回 pygame.rect(0, 0, 影象寬, 影象高) 的物件

#記錄尺寸

self.rect = self.image.get_rect()
#記錄速度

self.speed = speed
#重寫update方法

def update(self,*args):
#預設在垂直方向移動

self.rect.y+=self.speed

python018(精靈和精靈組01 基本概念)

pygame.sprite.sprite 儲存影象資料image和位置rect的物件 pygame.sprite.group 精靈 需要派生子類 image記錄像象資料 rect記錄在螢幕上的位置 update args 更新精靈位置 kill 從所有組中刪除 精靈組 init self,精靈 ad...

python使用pygame建立精靈Sprite

精靈組可以對其中的所有精靈呼叫它們各自的更新方法 s程式設計客棧elf.update 來進行更新,如位置更新 碰撞檢測 衝突檢測等 all sprites.update 精靈組可以對其中的所有精靈呼叫它們各自的draw方法 self.update 來繪製精靈 all sprites.draw scr...

Pygame如何使用精靈和碰撞檢測

在開始學習相關知識點之前,我們有必要先學習精靈和碰撞檢測的含義。精靈 英文譯為 sprite 其實在乙個遊戲程式中,精靈本質指的是一張張小尺寸的,比如遊戲中的各種道具 人物 場景程式設計客棧裝飾等,它們都可以看做成一張張小的 精靈 圖。除此之外,人物的移動也可以看做是一系列小精靈圖構成的序列 按幀組...