제목은 8방향이지만, 4방향도 되고, 16방향 이상도 가능합니다.
하나의 캐릭터 셋에서 여러 방향의 캐릭터 애니메이션을 표시하는 예제입니다.
스프라이트 이미지를 구성할 때 방향은 세로 순으로, 애니메이션 모션은 가로 순으로 구성합니다.
애니메이션 재생 순서는 캐릭터 셋 이미지에서 가로로 0 ▶ 1 ▶ 2 ▶ 3 ▶ ... 애니메이션 순으로
재생됩니다.
(▲ 애니메이션 이미지 구성)
방향은 게임메이커의 방향(direction) 설정대로 반시계 방향입니다. 즉, 첫번째 방향은 오른쪽(0)을
향합니다.
이미지는 아래의 스크립트로 표시할 수 있습니다.
◎ draw_ani_part_ext(cellwidth,cellheight,_x,_y,spr,subimg,dir,frame,dir_part,col,alpha)
- cellwidth : 캐릭터 이미지의 넓이
- cellheight : 캐릭터 이미지의 높이
- (_x,_y) : 표시위치
- spr : 표시할 스프라이트를 지정
- subimg : 스프라이트에서 캐릭터 셋이있는 서브이미지 번호
- dir : 이미지의 방향(direction으로 이동할 경우 direction으로 해도 됩니다.)
- frame : 현재 애니메이션의 프레임 번호(가로순)입니다.
- dir_part : 이미지가 몇개의 방향으로 구성(세로순)되어있는지 지정합니다.
4방향이면 4, 8방향이면 8로 지정합니다.
- col : 이미지의 색상을 지정합니다.
- alpha : 이미지의 투명도를 지정합니다.
애니메이션 재생은 아래 스크립트로 재생시킬 수 있습니다.
◎ init_part_animate( ) : 애니메이션 초기화 스크립트. Create 이벤트에서 사용.
◎ play_part_animate(animate_max, animate_speed) : 애니메이션 재생 스크립트.
- animate_max : 재생할 애니메이션이 몇개로 구성(가로순)되어있는지 지정합니다.
- animate_speed : 애니메이션의 재생 속도입니다.
◎ animate : 현재 애니메이션 프레임 변수
사용 예) 스프라이트 : spr_sorceress_8 , 방향: 8 방향, 최대 프레임 : 8 개
(▲ 표시할 이미지 예)
★ Create 이벤트 init_part_animate( );//애니메이션 초기화 ★ Step 이벤트 play_part_animate(8,0.3);//총 8 프레임의 애니메이션을 0.3 속도로 재생 ★ Draw 이벤트 var _x,_y; _x=x-sprite_get_xoffset(sprite_index); _y=y-sprite_get_yoffset(sprite_index); draw_ani_part_ext(61,76,_x,_y,spr_sorceress_8,0,direction,animate,8,c_white,1); |
'GameMaker강좌[GMS2] > 예제모음' 카테고리의 다른 글
[GMS2 예제] 퍼즐보블게임 예제 (1) | 2022.03.28 |
---|---|
[GMS2 예제] 소코반 예제 (0) | 2022.03.28 |
[GMS2 예제] 키보드 키 이름 스크립트 (1) | 2022.01.12 |
[GMS2 예제] 사용자 키보드 키 설정 예제 (0) | 2022.01.11 |
[GMS2 예제]RTS 게임 강좌(구) 예제 (0) | 2021.02.04 |
댓글