Juwan Park :: RPG 2000/2003으로 간단한 액알 만들기 강좌 -5-

RPG 2000/2003으로 간단한 액알 만들기 강좌 -5-

◆게임 창작 관련/게임 창작 강좌 :: 2016.01.02 22:01

RPG 2000/2003으로 간단한 액알 만들기 강좌 4편([바로가기])에 이은 5편입니다.

5편에서는 마법공격과 민첩성 스탯 활용을 구현해 보도록 하겠습니다.


먼저, 간단하게 민첩성 스탯을 이용한 몬스터 공격 회피력을 구현해 보겠습니다.

커맨드를 이렇게 짜 주시면 적당합니다.

바뀐 점이 뭐냐고요? 몬스터 명중 난수와 주인공 민첩성 저장 변수가 추가되었다는 점입니다.

피격 상황이 발생하면 몬스터 명중 난수를 대입하고 주인공 민첩성을 대입합니다. 그리고 몬스터 명중 난수의 값이 주인공 민첩성보다 더 크면 몬스터의 공격이 명중하고 그 외에는 몬스터의 공격을 회피하도록 처리합니다.

즉, 이 알고리즘으로라면 주인공의 민첩성이 높을수록 몬스터의 공격을 회피할 확률이 높아집니다.

이 예제에서는 몬스터 명중 난수의 범위를 1부터 500까지로 잡았지만 굳이 저 값을 넣어야 할 필요는 없고 주인공의 민첩성 등을 고려하여 적당한 범위를 지정해 주시면 됩니다. 예를 들어, 몬스터 명중 난수의 최소치를 51로 지정하면 주인공의 민첩성 50 이하일 경우 무조건 피격당하게 됩니다.


다음은 마법공격 차례입니다.

RPG 만들기 2003에서는 좀 더 많은 키 입력이 가능하지만 RPG 2000에는 키 입력 처리 커맨드를 방향키와 결정키, 취소키 및 ESC밖에 지원하지 않습니다. 그래서 이 예제에서는 Shift 키를 누른 상태로 공격하면 특수공격이 가능하게 구현해 보겠습니다.

먼저 키 입력을 받아들일 변수를 세팅한 후 이렇게 커맨드를 넣고

이렇게 조건분기를 해 주면 Shift 키를 누른 상태로 공격하면 번개가 떨어지는 이펙트와 함께 정신력만큼의 대미지가 들어가는 공격을 하고 그냥 공격하면 칼질하는 이펙트와 함께 공격력만큼의 대미지가 들어가는 공격을 합니다.

물론 이는 어디까지나 예를 들기 위한 것이므로 여기서 커맨드를 추가하여 MP를 일정량만큼 소모한다거나 하는 처리를 넣을 수도 있습니다.


이렇게 커맨드를 추가하고 보니까 문제가 생겼네요.

게임오버 방지, 회피 처리 등 여러 커맨드를 넣은 결과 보다시피 커맨드가 늘어졌는데요.

커먼 이벤트와 공통 효과용 맵 이벤트를 이용해서 해결할 수 있습니다.

먼저 피격당했을 때의 커맨드를 몬스터 명중 난수 대입을 제외하고(몬스터 명중 난수는 몬스터마다 다르게 설정될 여지가 있으므로) 이렇게 하나의 커먼 이벤트에 몰아넣습니다. 어차피 피격될 때는 애니메이션이 주인공에만 적용되므로 커먼 이벤트로 처리가 가능합니다.

그리고 커먼 이벤트 불러오기로 처리하여 커맨드가 이렇게 줄었습니다.

이번에는 주인공이 공격하는 커맨드를 공통으로 처리해 보겠습니다.

먼저 이와 같이 공통처리할 이벤트를 구석에 하나 만들어 봅시다.

투명처리에 사용할 캐릭터 그래픽을 추가한 다음

이렇게 이동 불가 지역에 이벤트를 추가해 줍니다.

애니메이션 효과를 겸해서 대미지를 처리할 이벤트의 내용은 이렇습니다.

먼저 미리 대입해 놓은 몬스터의 좌표로 이벤트를 옮긴 다음 → 만약 Shift 키를 누르고 공격했다면 옮겨진 이벤트의 위치에 번개 애니메이션을 출력하고 미리 대입해 놓은 몬스터 대미지 누적 변수 번호에 주인공의 정신력만큼 가산, 그냥 공격했다면 같은 방법으로 검 애니메이션 출력하고 주인공의 공격력만큼 가산 → 공통처리용 이벤트에 1보 후퇴 효과를 넣음 → 몬스터 좌표 변수에 공통처리용 이벤트 좌표 대입 → 원래 자리로 돌아가고 끝

이렇게 갑니다.

공통처리용 이벤트의 후퇴 효과시 경로는 이렇습니다. 이미 이동 속도를 변경한 상태이므로 굳이 속도 변경을 넣을 필요가 없습니다.

이 공통처리용 이벤트는 몬스터 이벤트에서 호출하는 방식이므로, 한번 몬스터 이벤트에서 공격했을 때의 커맨드를 봅시다.

이렇게 바꾸면 됩니다. 과정을 설명하자면

대상 몬스터의 좌표를 대입 → 공통처리용 이벤트를 해당 몬스터의 그래픽으로 바꾸고 해당 몬스터 이벤트는 투명 그래픽으로 변경 → 몬스터 대미지를 누적할 변수의 번호를 대입 → 공통처리용 이벤트 호출 → 공통처리용 이벤트가 끝나면 그 자리로 해당 몬스터 이벤트의 위치를 이동 → 해당 몬스터 이벤트의 그래픽을 되돌리고 공통처리용 이벤트의 그래픽은 다시 투명으로 변경 → 끝

이렇게 됩니다.

이런 식으로 이벤트를 통합하면 그 많은 몬스터 이벤트를 일일이 뜯어고칠 필요가 없이 커먼 이벤트나 각 맵의 공통 이벤트를 고치는 것으로 간편하게 처리 가능합니다.


여기서 RPG 2000/2003으로 간단한 액알 만들기 강좌 5편을 마칩니다.

Today 5    Yday 37    Tot 65,556
Juwan Park
Juwan Park's blog is powered by Daum and TISTORY.
Contemporary Blue for TISTORY.
Designed by Juwan Park. Creative Commons License
▲ TOP