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

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

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



GAME MAKER 강좌



KAYAN







(▲ 예제)


Rpg만들기의 캐릭터처럼 하나의 캐릭터 셋 이미지에서 방향별 애니메이션을 표시(4방향)하는 예제입니다.

애니메이션 재생 순서는 캐릭터 셋 이미지에서 가로로 0 ▶ 1 ▶ 2 ▶ 3 ▶ ... 애니메이션 순으로 재생됩니다.








◈기본 표시 스크립트



스프라이트 이미지를 구성할때 방향은 세로 순으로, 애니메이션 모션은 가로 순으로 구성하시면 됩니다.

방향은 게임메이커의 방향(direction) 설정대로 반시계 방향입니다.



(▲표시할 이미지 예1)


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

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


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

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

     - alpha : 투명도

사용 예)



     ★ Draw 이벤트
     //스프라이트 : spr_chr1  애니메이션 변수 : animate


     var _x,_y;
     _x=x-sprite_get_xoffset(sprite_index);//표시할 x 위치
     _y=y-sprite_get_yoffset(sprite_index);//표시할 y 위치


     draw_ani_part(32,32,_x,_y,spr_chr1,0,direction,animate,1);



추가 스크립트로 애니메이션을 재생시킬 수 있는 스크립트가 2개 있습니다.

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

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

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

재생순서는 캐릭터 셋에서 가로 순으로 재생됩니다.
이미지 번호에 관련된 변수로 animate 를 사용할 수 있습니다.


사용 예)



     ★ Create 이벤트

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


     ★ Step 이벤트

     set_animate(0.1);//애니메이션 재생

     //애니메이션 번호로 animate 를 사용할 수 있음.







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


sprite_part_animate_type1-1.gmk


sprite_part_animate_type1-1.exe




300x250

댓글