게임개발

TRPG(1)

연습생_동동 2022. 1. 14. 16:34

그동안 따로 블로그에 기록하진 못했지만 c++에 대한 진도가 꽤 나갔다

클래스까지 배우고 나니 이제 간단하게라도 게임을 만들어보고 싶어졌다

아직 다른 플랫폼을 이용한 게임을 만드는 법을 모르기 때문에

콘솔창에서 플레이가 가능한 게임이 뭐가 있을까 고민을 해보다가

텍스트기반 RPG 게임을 만들어 보기로 했다

 

참조 - 드래곤볼, 탑블레이드, 포켓몬, 가위바위보

기본 스토리 : 천하제일 팽이 대회에 도전하기로 한 플레이어

패기있게 대회 접수처로 들어가지 조건을 충족하지 못했다고??

빠르게 조건을 충족해 대회에서 우승하겠어!

플레이어 클래스의 포인터 변수 선언 및 대회 커트라인 조건 선언 
프롤로그 함수를 만들고 그 안에 프롤로그 대사를 담은 배열 선언 및 정의

조금 난잡한 느낌이지만 엔터를 통해 스토리가 진행되고

switch함수를 통해 특정 대사의 순서를 체크

if함수로 마지막 대사를 체크해 while문을 끝내기

main함수에서 프롤로그 실행

와 동영상 넣기 무지 빡세구나

근데 동영상을 보니 너무 왼쪽 상단에 글이 몰린 느낌이 든다

위에야 cout << endl;로 한다고 쳐도 왼쪽 띄어쓰기를 모두 "    "를 하는 것은 불편할 것 같다

그러니 함수로 처리하자

string을 받아와 공백 후 출력해주는 함수를 만들었다
각 대사를 출력하는 부분에 Sort()함수를 호출

이정도면 가려지진 않겠다

기왕 꾸미기 시작한거 까끔하게 출력 구분 창도 만들었다

어라, 밑줄은 어떻게 처리하지?

30분 동안 고민해봤는데 그 전에 게임부터 완성하고 생각하자

우선은 이렇게 위에 시작줄만 넣어뒀다.

프롤로그가 끝이 났으면 마을로 가야한다

마을 클래스 생성

처음에는 클래스 내에 배열을 선언해서 그 안의 값을 비교해 활동을 선택하려했으나

다시 생각해보니 switch로 체크하는게 훨씬 간편해서 이렇게 구현했다

맵 클래스 내의 함수들이 플레이어 내의 정보들을 활용해야하는 경우가 많아

생성자를 이용해 플레이어를 받아왔다

맵에서 처음 구현할 함수는 필드다

필드에서는 3초간의 탐색을 거치고 적과 만날 예정이다

3초의 딜레이를 주기 위해
3초간의 딜레이 이후 적을 발견

이제 배틀로 넘어가기 전 적을 생성해야한다

캐릭터 클래스를 상속 받는 적 클래스 생성 참고로 캐릭터 클래스 내의 현재 구성요소는 이렇게 되어있다

참 그 전에 팽이 게임인 만큼 팽이를 얻어야 한다.

 

팽이 클래스를 생성하고 공격력과 체력(내구도라 불러야 맞겠지만)을 선언한다

캐릭터 클래스에 있는 공격력과 체력은 삭제했다

팽이는 3가지 타입을 지니기 때문에 팽이 클래스를 상속받는 각각의 팽이 타입을 생성했다

팽이에 기본적인 변수 및 함수를 생성하고 보니...

적을 랜덤으로 생성할 때 플레이어의 상태를 기준으로 만들어야 되서

플레이어 팽이를 먼저 설정해주어야 한다

왔다 갔다 바쁘구만

우선 플레이어 클래스에 팽이의 포인터 변수와 팽이를 가지고 있는지 파악하는 함수를 생성하고

맵에서 플레이어가 팽이를 가지고 있을때 탐색이 가능하도록 조건을 설정해준다

팽이가 없으면 상점으로 유도

자 팽이를 받을 상점을 만들어보자

아! 그 전에

엔터가 들어올때까지 지연시키는 함수를 만들었다

엔터를 누르면 다음 실행

팽이가 없는 플레이어에게 팽이에 대해 설명해 주는 과정이 끝났으면 이제 팽이의 타입을 선택해줄때!

3지선다를 할 초이스 함수 생성

처음에는 기본 세팅을 해주고

while(true)안에 들어가 있다

방향키를 통해 화살표를 이동하고 엔터로 그 순서를 리턴

여기까지 잘 되나 확인을 하려 했으나 안되더라

이유를 확인해보니 Prolog()함수에 주소를 넣었으니 자연스럽게

여기서 생성한게 main함수에 적용이 될 거라고 생각한게 문제였다

따라서

플레이어 생성한 것을 리턴해줌
map은 플레이어를 프롤로그가 끝난 이후에 생성해줌

그러면 이렇게

잘 실행되는 것을 확인할 수 있다

흠.. 그런데 이거 엔터를 눌러도 잘 안넘어가진다

뭐가 문젤까?

벌써 하루가 다갔네 다음 블로그에서 해결해봐야겠다

'게임개발' 카테고리의 다른 글

Unity) 롤토체스 같은 게임 - 스테이지 데이터  (0) 2024.08.25
Unity) 롤토체스 같은 게임 - 프로젝트 세팅  (0) 2024.08.25
TRPG(2)  (0) 2022.01.17