ホームページ > バックエンド開発 > Python チュートリアル > 一連の画像を使用して Pygame でアニメーション スプライトを作成する方法

一連の画像を使用して Pygame でアニメーション スプライトを作成する方法

Mary-Kate Olsen
リリース: 2024-11-10 01:02:02
オリジナル
253 人が閲覧しました

How to Create an Animated Sprite in Pygame using a Series of Images?

いくつかの画像からのアニメーション スプライト

この記事では、一連の画像を使用してアニメーション スプライトを作成する方法について詳しく説明します。 Pygameを使用したPython。フレーム依存アニメーション手法と時間依存アニメーション手法の両方について説明します。

メイン ループの前

まず、すべての画像をリストに読み込みます。次に、3 つの変数を作成します。

  1. index: 画像リストの現在のインデックスを追跡します。
  2. current_time: 経過時間を追跡します。最後の画像切り替えからの時間。
  3. animation_time: 画像を切り替えるまでの経過時間を定義します。

メイン ループ中

メイン ゲーム ループ内で、

  1. 最後のフレームからの経過時間に基づいて current_time を増分します。
  2. current_timeanimation_timeを超えているかどうかを確認します。 true の場合、

    • current_time を 0 にリセットします。
    • 画像リスト内の index を増分します。
    • スプライトの画像を適宜変更します。

実装

完全な例を次に示します。

import pygame

screen = pygame.display.set_mode((640, 480))
clock = pygame.time.Clock()

# Load images
images = [pygame.image.load("explosion" + str(i) + ".png") for i in range(10)]

# Create animated sprite
animation_time = 0.1
current_time = 0
index = 0

class Sprite(pygame.sprite.Sprite):
    def __init__(self):
        super().__init__()
        self.image = images[index]
        self.rect = self.image.get_rect()

    def update(self, dt):
        global current_time, index
        current_time += dt
        if current_time >= animation_time:
            current_time = 0
            index = (index + 1) % len(images)
            self.image = images[index]

sprite = Sprite()
group = pygame.sprite.Group(sprite)

running = True
while running:
    dt = clock.tick(60) / 1000

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    group.update(dt)

    screen.fill((0, 0, 0))
    group.draw(screen)
    pygame.display.update()
ログイン後にコピー

理解することで関連するタイムフレームとトランジションを利用して、独自の Pygame プロジェクトで視覚的に魅力的なアニメーション スプライトを効果的に作成できます。

以上が一連の画像を使用して Pygame でアニメーション スプライトを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート