본문 바로가기
[ C언어 ]/- C언어 문법공부

C언어 27장(c언어 게임만들기_4.0 , 게임오버, 함수 응용, 배열응용, 전역변수, 조건문 활용, 반복문, 콘솔글자색 바꾸기, 배경색)

by MRG 2020. 6. 26.
728x90
반응형
728x90

▣ 안녕하세요
저번장까지 완성해 보셨나요?
여러분들이 만든 c언어 게임이 궁금하네요 ^^
혹시 만드시다가 피드백이 필요하신 분은 댓글 남겨주세요~~


▣ 그럼 오늘은 플레이어 HP가 0이면 게임오버가 나오게 해 보겠습니다.
먼저

 

▣ 게임 메뉴 콘솔 창에 크기를 조절해 주겠습니다.
이건 우리가 처음 시간에 하지 않았습니다.
그건 다시 게임 메뉴로 돌아올 상황이 없기 때문에,
기본 콘솔 창설 정으로 시작했지만, 
이번에는 게임오버를 호출하고 다시 게임 메뉴로 돌아올 상황이 있기 때문에,
콘솔 창에 크기를 지정해주었습니다.
그렇게 하지 않으면,
우리가 게임 씬에서는 콘솔 창을 작게 정했기 때문에,
게임 메뉴 글자가 작아서 깨져서 보이겠죠? 
설정한 다음에

 

 

▣ 이번에는 전역 변수로 가서 
몬스터에 파워를 지정해주겠습니다. 
이건 각 챕터마다 몬스터에 파워를 다르게 하기 위해서 전역변수로 정의했습니다.
이건 저와 다르게 하셔도 됩니다.
저는 쉽게 모든 함수에 몬스터 파워를 쓰고 관리해 주기 위해서 간단하게 전역 변수로 지정했습니다.
여러분들은 다르게 하셔도 됩니다.
그런 다음에

 

 

▣ 몬스터가 등장하는 게임 씬으로 가서 전역 변수에 값을 다르게 정의해 줍니다.
그렇게 해서 씬마다 몬스터 파워가 다르게 할 수 있습니다.
다시 말씀드리지만 
저처럼 전역 변수를 하지 않고 지역변수로 관리를 하셔도 됩니다.

 

▣ 그리고 밑에 조건문으로 가서 몬스터 공격 상태가 1이면 playerHP가 몬스터 파워 값으로 HP가 떨어지게
코딩을 수정해줍니다.
당연히 출력하는 부분도 수정해 줘야겠죠?

 

▣ 동일하게 다른 게임 씬도 이렇게 다른 값에 파워로 지정해 주고 
조건문에 변수 값도 수정해 줍니다.
그리고 디버깅을 해서 테스트를 해보겠습니다.

 

▣ 그럼 이렇게 우리가 씬마다 지정한 몬스터에 파워대로 
각각 다르게 playerHP가 깎이는 걸 확인할 수 있습니다. ^^
이걸 통해서 몬스터에 파워도 랜덤으로 지정할 수 있습니다.



▣ 이제 몬스터 파워를 지정했으니 
게임오버 함수를 만들어보겠습니다.
게임 메뉴 함수와 동일하게 만드시면 됩니다.

 

▣ 저는 이렇게 게임오버라는 문구로 만들었습니다.
당연히 게임오버 함수가 호출될 때 모든 출력 결과가 지워지고 
콘솔 창을 지정해 준 다음에 
게임오버라는 문구가 출력이 돼야 합니다.
이렇게 지정하지 않으면 다른 출력한 함수에 결과와 겹쳐서 보이게 됩니다.
이점 주의해 주시고 
코딩을 할 때 프로그램은 순차적으로 작동한다는 것 기억하시면서 코딩을 설계해 주세요.

 

▣ 그리고 게임오버를 출력하고 게임 메뉴 함수에서와 동일하게 
a 키를 누르면 게임 메뉴 함수로 호출하게 지정해 줍니다.
그럼 게임오버 함수를 호출하고 a 키를 누르면 다시 재시작을 하는 느낌을 주게 됩니다.

 

▣ 그리고 꼭 맨 위에 함수를 선언하는 것 잊지 말아 주세요.
그럼 이제 마지막으로 게임오버를 어떻게 호출할지를 고민해야 합니다.
main함수에서 검사를 해야겠죠?
main함수가 시작과 끝이기 때문이죠.
playerHP가 0일 경우 게임오버가 돼야 합니다.

 

▣ 그럼 이렇게 main함수에서 무한으로 작동하는 while에 _getch() 함수로 입력을 받기 전에
playerHP가 0인지를 조건문으로 검사해서 게임오버 함수가 호출되게 코딩을 합니다.
그런데 왜 맨 위에 하냐라는 질문이 있을 수 있습니다.
그건 중간에 조건문을 넣게 되면 
만약 게임오버 조건문 전에 다른 조건문을 통해서 다른 함수가 호출된 상태가 되면 코딩이 꼬이겠죠?
그래서 먼저 playerHP를 검사하는 조건문을 넣었습니다.
그래야 playerHP가 0이면 다른 함수를 호출할 오류를 방지할 수 있습니다.
항상 프로그램은 순차적으로 작동한다는 것 잊지 말아 주시고 코딩해 주세요.
그렇게 해서 디버깅 후 테스트를 해보겠습니다.

 

▣ playerHP가 0이면 게임오버 함수가 호출이 됩니다.
그리고 a 키를 누르면

 

▣ 이렇게 다시 메뉴 화면이 나오는 걸 확인할 수 있습니다. 


▣ 자 우리가 드디어 게임오버 화면까지 구현해 보았습니다.
지금까지 배운 내용들을 활용해서 여러분들이 여러분들만에 게임을 만들어볼 수 있겠죠?
c언어 게임은 여기까지 진행하도록 하겠습니다.
이 정도면 아주 간단한 게임은 만들실 수 있을 거라 생각합니다. 
혹시 제가 더 업그레이드를 하고 싶으면 더 올리도록 하겠습니다.
그러니 너무 실망하지 마세요~~
질문 있으시면 댓글 남겨주시고 앞으로도 c언어 외에 다른 텍스트 언어도 업데이트 중이니,
다른 언어들도 함께 공부하시면 좋을 거 같습니다.
그럼 다음장에서 또 뵙겠습니다. 


▣ 포기하지 마세요~~ 저도 했습니다~~~ 파이팅~~

728x90
반응형

댓글