게임에 사용된 무료 리소스 링크

https://pipoya.itch.io/

Pipoya - itch.io

pipoya.itch.io

http://monstermeetingplace.web.fc2.com/

モンスター集会所!

monstermeetingplace.web.fc2.com

게임의 해상도를 올리고 60프레임에서 144프레임으로 업데이트를 한 김에 애니메이션도 넣어보았다. 공부도 할 겸 무료 리소스를 구해서 적용했다. 내가 게임에서 사용한 무료 리소스는 위 링크를 타고가면 있다.

애니메이션 구현하기

막상 혼자서 날코딩으로 애니메이션 구현하려다보니.. 아이디어가 잘 떠오르지 않았다.
방법을 곰곰히 생각해보다 애니메이션 프레임을 관리해주는 클래스를 만든 후 루프시키고 픽셀로 점찍으면 애니메이션이 되겠구나 싶어서 구현해보았다. 물론 현재 리소스는 프레임이 많아봐야 5~8프레임 정도라 이 클래스는 12프레임까지만 다루고 있다. 만약 20프레임 30프레임 이렇게 되버리면 enum의 요소가 무지막지하게 많아져버리기 때문에. 고프레임의 애니메이션을 다루기 위해선 다른 방법을 찾아서 클래스를 더 수정해야한다. 그리고 프레임만 관리해주고 이미지 출력은 담당하지 않고 있는데 이미지까지 같이 관리하고 출력이 가능하게끔 이미지 클래스와 기능을 합치면 편리하게 사용할 수 있을 것 같다.


DDS 이미지 파일에 모션에 해당하는 픽셀 위치를 enum으로 전부 넣고 (최대 12프레임) 각각의 모션에 대한 의미로 이름을 1프레임 2프레임이라고 해두었다. 그리고 움직이는 모션을 반복 시킬 수 있게 루프시켜주는 함수도 구현했다. 루프모양은 아래와 같다.

 


증감연산자를 전부 오버로딩해서 사용하고 있다.
그리고 이 클래스를 이용해서 간단한 프레임 애니메이션을 적용해봤다.
나름 짧은 코드로 애니메이션 구현이 가능해졌다.

플레이어 오브젝트에 애니메이션 적용하기

m_isWork는 벽과 충돌하지 않고 키 입력이 들어왔을 때만 걷는 모션이 가능하게 해준다.

애니메이션 적용 후 영상