본문 바로가기
GameMaker강좌[GM8]/예제 모음

한개의 캐릭터 셋 이미지로 8 방향 애니메이션 표시 예제

by 타락카얀 2013. 12. 23.
728x90



GAME MAKER 강좌



KAYAN






(▲ 예제)


제목은 8방향이지만, 4방향도 되고, 16방향 이상도 가능합니다.
하나의 캐릭터 셋에서 여러 방향의 캐릭터 애니메이션을 표시하는 예제입니다.
애니메이션 재생 순서는 캐릭터 셋 이미지에서 가로로 0 ▶ 1 ▶ 2 ▶ 3 ▶ ... 애니메이션 순으로 재생됩니다.

스프라이트 이미지를 구성할때 방향은 세로 순으로, 애니메이션 모션은 가로 순으로 구성하시면 됩니다.
방향은 게임메이커의 방향(direction) 설정대로 반시계 방향입니다.



(▲표시할 이미지 예)


애니메이션은 아래의 스크립트로 표시할 수 있습니다.

     draw_ani_part_ext(cellwidth,cellheight,x,y,spr,subimg,dir,frame,dir_part,alpha)


     - cellwidth : 캐릭터 이미지의 넓이
     - cellheight : 캐릭터 이미지의 높이
     - (x,y) : 표시위치

     - spr : 표시할 스프라이트를 지정
     - subimg : 스프라이트에서 캐릭터 셋이있는 서브이미지 번호
     - dir : 이미지의 방향(direction으로 이동할 경우 direction으로 해도 됩니다.)
     - frame : 애니메이션 프레임 번호입니다.

     - dir_part : 이미지가 몇개의 방향으로 구성되어있는지 지정합니다(4방향이면 4, 8방향이면 8로 지정).
     - alpha : 이미지의 투명도를 지정합니다.


애니메이션 재생은 아래 스크립트로 재생시킬 수 있습니다.


     init_part_animate() : 애니메이션 초기화 스크립트. Create 이벤트에서 사용.

     set_part_animate(image_max,image_speed) : 애니메이션 재생 스크립트.

     - image_max : 재생할 애니메이션이 몇개로 구성되어있는지 지정(애니메이션 수)
     - image_speed : 애니메이션의 재생 속도


사용 예)



     ★ Create 이벤트

     init_part_animate();//애니메이션 초기화

     ★ Step 이벤트

     set_part_animate(8,0.3);//총 8 프레임의 애니메이션을 0.3 속도로 재생


     ★ Draw 이벤트

     //스프라이트 : spr_sorceress_8  애니메이션 변수 : animate 사용

     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,1);






--------- 예 제 ---------


sprite_part_animate_type2a-1.exe


sprite_part_animate_type2a-1.gmk



--------- 스크립트 ---------

draw_ani_part_type2.gml





300x250

댓글