• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

Process() 메소드 관련 문의입니다.

20.12.22 23:23 작성 조회수 132

0

영상을 들으며 공부할 때 항상 잠시 멈춰두고 코드를 작성하고 영상을 듣곤 합니다. 그 과정에서 제가 생각했던 코드와 작은 차이가 생겨 질문드립니다.

ProcessLobby() 나 ProcessTown() 코드를 작성하는 과정에서 _mode를 변경하는 부분은 이해했으나 모드만 변경해도 자동으로 다시 Process()가 돌아가지는 않을거라 생각하여 모드 변경 다음 줄에 Process(); 를 추가하여 작성했습니다.

그런데 강사님 영상에서는 그러한 과정 대신 while()문을 이용하여 반복시행하는 것으로 문제를 해결하는 과정을 봤습니다. 이번 강의 외에도 모든 강의에서 while(true) 문을 사용해서 코드를 작성하는 것을 보았는데 개발에 있어서 코드작성할 때 while() 안에서 작동되는 것을 고려하여 개발하는 것이 좋을까요?

답변 3

·

답변을 작성해보세요.

2

mode가 어떤 값을 갖고 있는지 보고
- GameMode.Lobby이면 ProcessLobby()를 실행하고
- GameMode.Town이면 ProcessTown()을 실행하고
- GameMode.Field이면 ProcessField()를 실행하게
만들어 놨기 때문입니다.

Process라는 함수가 실행될 때 길이 3가지가 있는데
mode라는 변수가 길을 선택해주는 스위치 역할을 해준다고 보시면 되겠습니다!

1

콘솔 프로그램이다 보니 그렇게 작성한 것이기도 하고,
실제 게임도 무한 루프를 돌면서 게임을 끝낼때까지
계속 도는 방식으로 구현되어 있기도 합니다.

나중에 유니티/언리얼 등 게임 엔진을 사용하면
Main 안의 무한 루프는 엔진 핵심 코드에 의해 숨겨져 있을테니
우리가 직접  while (true)를 코드를 작성하진 않게 되겠지만,
실제로 모든 게임의 Core는 다 무한 루프로 이루어져 있다고 보시면 됩니다.

0

강동훈님의 프로필

강동훈

질문자

2020.12.23

강사님. 답변감사합니다. 그렇다면 혹시 무한 루프가 도는 걸로 swich문에서 모드를 변경한 걸로 타운에서 필드로 필드에서 마을로 가지는 이유에 대해 조금만 더 구체적으로 설명해주실 수 있으신가요?