adsense



[JAVA(swing)] Ranger Quest - Legacy 2D 애니메이션 응용편

[JAVA(swing)] Legacy 2D 애니메이션


조작법 : 상하좌우 방향키로 캐릭터를 조종하고 스페이스바로 화살을 쏩니다.

프로젝트 파일 : RangersQuest.zip

오전에 만든 2D 애니메이션을 응용한 것입니다.

음.. 좀 더 멀쩡한 게임으로 만든 다음에 공개해볼까 했는데, 좀 이것저것 걸리는게 많아서 말이죠 -_-;
소스도 많이 지저분하고.

목적은 애니메이션 응용이고 그건 그럭저럭 됐지 싶으니 걸어봅니다.

상세한 소스 해설은 생략하고 눈여겨 볼 포인트는,

-앞서 포스팅에서 구현한 애니메이션을, AnimatedSprite라는 클래스로 독립시키고,
-이런 컷 애니메이션이 필요한 오브젝트-여기서는 플레이어 캐릭터와 몬스터-를 클래스 선언하고 AnimatedSprite를 상속하였습니다.

그렇게 해서 만들어진 클래스가 Ranger와 Skeleton입니다.

기본적으로 아이들링-걷기-공격-죽음을 기본 세트로 갖는 경우라면 process를 오버라이드할 필요 없이 처리됩니다.
단, 캐릭터마다 그림의 매수와 프레임, 딜레이 등은 모두 다르기 때문에 setIdle, setWalk, setAttack, setDead 등은 모두 오버라이드 해 줘야합니다.

AnimatedSprite에 지정된 기본적인 애니메이션 외에, 추가적으로 얹혀진 처리에 대해서도 눈여겨 봐 주세요.
플레이어 캐릭터의 특정 애니메이션 프레임과 연동해서 화살이 발사되게 한 부분이라던가,
몬스터가 행동을 결정하고(현재는 랜덤) 일정 시간 동안 지정된 행동을 수행하는 모양이라던가가 볼거리(?)입니다.

기본적으로 캐릭터의 움직임 제어라는 건 플래그와 카운터 덩어리라고 할 수 있겠습니다.


차후의 과제로서는

몬스터에게 데미지를 입혀 몬스터가 죽는 처리,
플레이어가 몬스터의 공격을 받아 데미지를 입고 죽는 처리,
공격이 히트했을 때 이펙트,
몬스터가 죽게 되면 적절한 규칙에 따라 리젠되는 처리,
라이프 표시나 점수 등 UI 표시,
사이드 뷰 게임에서 필수적인, 스프라이트의 우선 순위 문제,
타이틀 화면이나 게임오버 화면의 구현

등이 있겠는데요, 몇몇가지는 간단하고 미리 빈 함수를 넣어놨으니 적절하게 구현해 보는 것도 좋겠고, 기회가 되면 남은 과제 부분에 대해서도 다뤄볼까 합니다.

감사합니다.


덧글

  • 하얀삼치 2015/05/22 08:50 # 답글

    좋은 글 감사합니다.
  • 펭귄대왕 2015/05/22 11:40 #

    정리되지 않은 걸 너무 급하게 꺼내놓은 것 같아서 새로 좀 해보고 있습니다..
댓글 입력 영역


Books

Geek라이프

게임 매니악스 슈팅 게임 알고리즘
마츠우라 켄이치로,츠카사 유키 공저/손정도 역/박민근,Pope Kim 감수

게임 매니악스 퍼즐 게임 알고리즘
마츠우라 켄이치로,츠카사 유키 공저/김병국 역

핵심강좌! Cocos2d-x
이재환 저

될 수 있어! SE 13
나츠미 코지 저/Ixy 그림/김경훈 역
예스24 | 애드온2