자 그럼 오늘은 클래스의 설계에 대해서 해보겠습니다.

우리는 TxtRpg에 대해서 만들려고 합니다. 그 중에서 당연히 먼저 플레이어와 몬스터를 설계해 보려고 합니다.

자 주인공이라면 이름이 있어야 하니 문자열을 저장할 수 있어야 합니다. 문자열은 string으로 나타내집니다.

그리고 주인공이니 공격을 할 수 있어야 합니다. 공격을 하려면 공격력이라는 속성이 필요할 것 같습니다. 있어야 합니다.

공격력은 소수점까지 공격력을 판정하지 않을 테니 정수형이어야 할 것입니다. C#에서 정수형 자료형은 int가 있으니 int로 하겠습니다.

그런 식으로 이름, 공격력, 체력, 방어력과 같은 속성을 지정하여 클래스를 설계해보겠습니다.

우리는 클래스에 변수를 선언할 때 항상 고민을 해봐야 합니다. 정수라는 것도 결국 0과 1로 이루어진 데이터일 뿐입니다. 하지만 그렇기 때문에 표현에 한계가 있습니다. 레벨스케일링이 잘못된 게임들은 게임의 단위를 전체적으로 축소하기도 합니다.(wow의 드군 레벨스케일링)같은 경우.

그러니 초기에 변수의 선언에서도 자료형의 표현한계 등을 생각하여 클래스를 설계하는 것이 중요합니다.

자 그럼 플레이어 클래스를 설계했으니 이제 몬스터 클래스도 설계하도록 해보겠습니다. 사실 몬스터도 플레이어와 전혀 다를 것이 없습니다. 그저 클래스만 구분해서 이 녀석은 몬스터라고 분류할 뿐이죠. 일단 몬스터 클래스를 만들기 위해서 이전에 플레이어클래스를 만들 때와 동일하게 클래스를 만들어 보도록 하겠습니다.

 

 

자 몬스터 클래스를 추가하면 Monster.cs파일이 생성될 것입니다. 플레어이와 완전히 같은 내용으로 채워보도록 하겠습니다.

자 이제 우리는 몬스터와 플레이어 클래스 2개의 클래스를 만들었습니다.

C#은 객체지향프로그래밍을 추구합니다. 객체지향 프로그래밍의 기본적인 요소는 말그대로 객체라는 것을 사용하여 저번에 설명 드렸지만 클래스객체를 만든 것이 아닌 객체를 만들기 위한 설계도를 만든 것이라고 생각하시면 됩니다. 즉 이제 플레이어와 몬스터의 설계도가 준비되었으니 이 설계도를 통해서 플레이어와 몬스터를 만들고 그 둘을 싸우게 해야 합니다.

당연한 이야기지만 객체를 생성하기 위한 코드를 작성해야 합니다. 객체를 생성하기 위한 코드는 main함수에 작성해야 합니다. 이유는 저번에 설명 드렸지만 프로그램의 시작은 main함수에서부터 시작하기 때문입니다.

 

 

자 다음과 같이 코드를 쳤다면 이제 설계도를 기반으로 플레이어를 만드는 코딩을 한 것입니다.

다음 강의에서는 몬스터와 플레이어가 서로 공격을 하는 코드와 함께 접근제한자에 대해서 알아보겠습니다.

Posted by JJOREG