본문 바로가기

C#/Today I Learned

추상클래스 실전에서 사용해보기

추상클래스를 사용하여

Main / LoginScene / StartScene / StatusScene

이 세 가지 스크립트에 정보를 저장하는 것을 해봤다.

 

이게 왜 어려웠을까?

 

기존에는 단순히 Character 클래스에서 정보를 전달하면 되었지만,

이번에 어려움을 겪은 부분은 직업을 선택하도록 설계하는 과정에서

데이터를 인수 인계가 원활하도록 하는 부분이었다.

 

직업을 선택한다는 것은 Character 클래스로부터 파생시켜 Warrior 와 Wizard 로 각각의 클래스에 상속시킴으로써

객체 지향 프로그래밍을 한다는 것에 의의가 있다는 점이다.

즉, Character 클래스를 추상클래스로 전환시켜서 사용한다고 할 수 있다.

 

[ 구성 ]

메인에서 메서드 호출  ㅡ>  로그인 화면  ㅡ>  게임 시작 메뉴 ㅡ>  캐릭터 정보창 

 

메인

기존에는 클래스를 메인에서 선언과 할당을 하여서 사용하였다.

하지만 추상클래스를 사용함으로써 인스턴스로 할당이 불가능하다.

그러므로 추상클래스를 사용할 때는 선언만 하였으며,

상속받은 클래스인 Warrior 클래스와 Wizard 클래스가 할당을 받도록 유도하였다.

public static string nickName 같은 경우, 로그인 화면에서 사용될 변수 nickName을 이 메인에 저장하기 위함이다

 

로그인

빨간 줄이 쳐져 있는 부분이 메인에서 말했던 사용자가 입력한 변수를 메인에 저장하도록 설계한 부분이다.

직업을 선택기전에 Character character = null ; 로 데이터 초기화를 한번 해주고

스위치문을 통해서 데이터를 온전히 받을 수 있도록 하였다.

character != null 은 직업을 선택함으로써 데이터가 있는 경우이므로 로그인에 사용된 character 변수를

Main에 저장되도록 하면서 StartScene으로 전개시켰다.  

 

캐릭터 정보창

Character의 데이터를 사용하지만 선택한 직업에 맞게 치환되어 적용

StartScene의 선택 메뉴를 통해서 캐릭터 정보창에 들어올 수 있다.

Program.Character.~~~ 으로 Character 클래스의 정보로 능력치가 구성되어 있지만

위에서 온전한 절차를 밟았으므로, 유저가 선택한 직업에 맞는 능력치를 배정 받게 된다.

'C# > Today I Learned' 카테고리의 다른 글

후입 선출 Stack?  (0) 2024.05.03
전위연산자 후위연산자?  (0) 2024.05.02
틱택토 - 턴제 형식  (0) 2024.04.28
캐스팅 사용 예시  (0) 2024.04.28
우주의나라 클래스 맛보기 및 TIL  (0) 2024.04.27