먼저, 객체 지향 프로그래밍(Object Oriented Programming)이란 무엇인가?
간단히 말하자면, 클래스를 정의해놓고 그 클래스대로 객체를 찍어내는 방식의 프로그래밍입니다.
가령, 슬라임 클래스에 체력, 공격력, 방어력이 있다고 설정한 후에, 슬라임을 그대로 찍어내는 방식이죠.
이 방식의 장점은, 가령 기존에 액션 RPG를 만들 경우, 이벤트 하나를 복사할 때마다 최소 10개 이상의 변수를 직접 바꿔주는 노가다가 필요하였습니다. 그러나 이 방법을 쓸 경우, 하나를 만들어놓고 계속 복사만 하면 끝입니다.
예제에서는 빠르게 만드느라 몬스터별로 능력치를 주는 것과 몬스터에게 결정키를 누를 경우 데미지를 받는 루틴 밖에 없으나, 그건 구현자에 따라서 얼마든지 바뀔 수 있는 부분입니다.
용어 설명
클래스 : 객체의 설계도를 뜻합니다. 클래스를 정한 대로 찍어냅니다.
객체, 오브젝트, 인스턴스 : 클래스를 기반으로 생성된 실체입니다.
필드 : 각 클래스가 가지는 값을 뜻하는데 예제에서는 체력, 공격력, 방어력이 있겠습니다.
메소드 : 각 클래스가 가지는 함수를 뜻하는데, 예제에서는 데미지 처리가 있겠습니다.
자세한 부분은 예제를 참고해주시면 감사하겠습니다.
단순히 설명하자면, 참조 연산(????번호의 변수)을 이용하여 실행된 후에 만들고 싶은 개수만큼 이벤트를 생성하는 방법입니다.
이벤트 ID가 연속되어야만 한다는 것이 큰 한계입니다.
나중에 밸런스를 조절하기 위해 적의 수를 줄여야 할 때 골치아프고
보물상자 이벤트나, NPD 이벤트, 기타 다른 이벤트를 맵상에 추가할 일이 생긴다면 더 골치아파지죠
만들기는 쉬우나 관리하기가 상당히 번거로워지는 방법입니다.