> 백엔드 개발 > 파이썬 튜토리얼 > 일련의 이미지를 사용하여 파이게임에서 애니메이션 스프라이트를 만드는 방법은 무엇입니까?

일련의 이미지를 사용하여 파이게임에서 애니메이션 스프라이트를 만드는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-11-10 01:02:02
원래의
254명이 탐색했습니다.

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

몇 가지 이미지로 애니메이션 스프라이트

이 기사에서는 다음에서 일련의 이미지를 사용하여 애니메이션 스프라이트를 만드는 방법을 살펴보겠습니다. 파이게임을 이용한 파이썬. 프레임 종속적 및 시간 종속적 애니메이션 기술을 모두 다룰 것입니다.

메인 루프 전

먼저 모든 이미지를 목록에 로드합니다. 그런 다음 세 가지 변수를 만듭니다.

  1. index: 이미지 목록의 현재 인덱스를 추적합니다.
  2. current_time: 경과된 시간을 추적합니다. 마지막 이미지 이후 시간 switch.
  3. animation_time: 이미지를 전환하기 전에 경과해야 하는 시간을 정의합니다.

메인 루프 동안

메인 게임 루프 내부에서는 we:

  1. 마지막 프레임 이후 경과된 시간을 기준으로 current_time을 증가시킵니다.
  2. current_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()
로그인 후 복사
기간 및 전환 이해 참여하면 자신의 파이게임에서 시각적으로 매력적인 애니메이션 스프라이트를 효과적으로 만들 수 있습니다. 프로젝트.

위 내용은 일련의 이미지를 사용하여 파이게임에서 애니메이션 스프라이트를 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿