안녕하세요
이번 강좌에서는 게임 하단에 좌표값 아이템 갯수 등(현재 아이템 구현은 안했지만)을 출력하는 기능을 구현하고
게임 도중 나갈 수 있도록 기능을 추가해보도록 하겠습니다.
[ 목차 ]
1. 하단에 정보 출력할 함수 구현
2. 게임 중단기능 구현
[1 하단에 정보 출력할 함수 구현 ]
저는 게임 하단에 플레이어의 위치와 보유하고있는 아이템의 갯수(추후에 열쇠 아이템을 추가할 예정입니다)를
사용자에게 보여주도록 할 예정입니다.
예상 결과는 위와 같습니다.
위치와 현재 보유하고있는 아이템을 출력하기만 하면 되죠.
크게 어렵지 않으니 잘 따라와주시기 바랍니다.
먼저 game.h 에 함수를 하나 정의합니다.
저는 drawUI 라는 이름으로 정의하였습니다.
매개변수는 int* 형 2개를 받습니다.
(플레이어의 x, y 위치를 출력할것이기 때문에)
(왜 하필 포인터변수를 사용하는지 이해가 안가신다면 이전 강좌를 확인해주세요)
정의하였으면 이제 구현해봅시다.
game.c 소스코드에 함수를 구현합니다.
먼저 색을 기본값으로 설정해줍니다.
그리고 gotoxy로 적절한 위치를 찾아줍니다.
(이 부분은 여러분들이 값을 변경해가면서 찾아주시면 됩니다)
적절한 위치가 어디냐면 제 기준으로
위 사진의 화살표 부분입니다.
저는 저쪽에다가 출력할 예정입니다.
위치를 설정한 후 플레이어의 위치를 출력합니다.
%02d 는 정수 형태로 출력 + 2글자로 출력한다는 의미입니다.
플레이어 좌표를 출력하였으면 아래에 아이템도 추가해줍니다. (현재 아이템 기능이 없으므로 이부분은 건너뛰어도 됩니다.)
함수를 모두 구현하였으면 함수를 사용해봅시다.
게임 루프내에 아래와 같이 작성합니다.
키 이벤트 받기 전에 방금 구현한 UI 그리는 함수를 호출합니다.
인자로는 플레이어의 x, y 값을 저장해두는 변수의 주소값을 전달하면 됩니다.
한번 컴파일 후 실행하여 결과를 확인해봅시다.
(실행결과)
위와같이 하단에 정보가 출력되고 있습니다.
(위치가 마음에 안들거나 이상하게 출력되면 gotoxy의 좌표값을 계속 변경해보면서 적절한 위치를 찾으세요)
이제 하단 정보영역은 어느정도 구현했으니 게임 중단기능을 구현해봅시다.
[2 게임 중단기능 구현]
현재상태로는 게임을 시작하면 창을 닫지 않는이상 프로그램 내에서 중단할 수 없습니다.
사용자가 특정 키를 누르면 게임에서 빠져나올 수 있도록 기능을 구현해봅시다.
저는 게임 중단 키를 스페이스바로 사용할것입니다.
이전에 스페이스바는 메인메뉴에서 선택하는 용도로 사용하였지만
게임 내에서는 종료하는 기능으로 사용하겠습니다.
(다른 키를 사용하고싶으시면 키보드값을 정의하시고 사용하시면 됩니다)
키보드값 정의에 대한 설명은 아래 강좌에 있습니다.
게임루프 안에 case 를 추가해줍니다.
입력한 키에 대한 값이 SUBMIT일 경우 playing 변수를 0으로 설정합니다.
playing 변수는 게임 루프(while)의 조건을 제어하는 변수인데요
1일때는 참(게임 진행), 0이면 거짓(게임 종료)입니다.
그래서 playing = 0 명령을 작성하였습니다.
위와같이 작성하였으면 한번 컴파일시키고 테스트해보세요!
게임 중 중단키(저의 경우는 스페이스바)를 누르면 다시 메인화면으로 돌아오게됩니다!
이번 강좌는 크게 어려운 부분이 없었습니다.
앞으로 남은 강좌도 크게 어렵지 않으니 잘 보시고 본인만의 콘솔게임을 개발해보세요!
다음 강좌에서는 맵 오브젝트 제어(1) 에 대해 설명하도록 하겠습니다.
[맵 오브젝트 제어는 크게 3가지 주제로 나눠서 진행합니다]
(1 - 벽 통과 못하게 제어)
(2 - 열쇠 아이템 추가 및 잠긴문 추가)
(3 - 목적지에 도착시 탈출(클리어)기능)
감사합니다.