Skip to content

Latest commit

 

History

History
85 lines (56 loc) · 2.79 KB

sprite.md

File metadata and controls

85 lines (56 loc) · 2.79 KB

스프라이트

Sprite

1

Sprite: 단일 스프라이트의 애니메이션 구현

스프라이트를 각 프레임으로 분할

4

세로줄과 가로줄만큼 반복하여 각각 프레임으로 분할

2

  1. 상속된 클래스 초기화
  2. 단일 스프라이트의 이미지를 불러온 후 strip_from_sheet() 함수를 이용하여 스프라이트를 분할
  3. 스케일링 후 변수 초기화
  4. 스프라이트의 첫번째 프레임 (이미지) 지정

3

  • added_index: 일부 프레임을 스킵하고 특정 프레임으로 이동할 수 있음.
  1. 현재 index가 프레임 배열 길이 범위를 벗어난 경우 초기화
  2. 프레임 업데이트

update() 함수 실행 시 다음 프레임으로 이동함.

특정 프레임마다 update() 함수를 실행하여 애니메이션을 구현할 수 있음.

SpriteHandler

5

SpriteHandler: Sprite (단일 스프라이트)를 쉽게 쓰고 관리할 수 있음.

단일/다중 스프라이트를 렌더링할 때 group 변수를 통해 렌더링하게 되는데

group 변수로만 스프라이트를 관리하기에는 충분하지 않아, 따로 관리할 수 있는 SpriteHandler 클래스를 만들게 되었음.

SpriteCollection

6

SpriteCollection: 다중 스프라이트를 지원하고 관리 가능한 클래스

렌더링할 스프라이트 가져오기

8

status 변수로 현재 렌더링할 스프라이트를 지정하여, 현재 렌더링할 스프라이트를 가져옴.

좌표 동기화

10

모든 스프라이트의 좌표를 지정

초기화

7

  1. 변수 초기화
  2. 모든 스프라이트가 위치할 좌표를 지정
  3. 스케일링
  4. 크기를 명시하지 않은 경우 스프라이트 크기를 기본 스프라이트의 크기로 설정

투명도 설정

9

모든 스프라이트의 투명도 설정

인게임

12 13

  1. SpriteCollection, SpriteHandler, Sprite를 이용하여 주인공의 스프라이트 애니메이션과 위치 및 크기값 설정
  2. 플레이어의 현재 스프라이트 애니메이션 상태가 stay인 경우, 그 스프라이트 애니메이션 업데이트

결과

11

플레이어와 장애물의 스프라이트 애니메이션

참조