반응형
게임이 시작되면 각 플레이어는 번갈아 가며 게임을 진행한다. 각 플레이어는 각 턴마다 60초의 시간을 가진다. 시간이 초과되면 자동으로 패배 처리가 된다.
타이머는 1초마다 WM_TIMER 메세지 혹은 콜백 함수를 호출하며 루틴을 실행한다. 여기서 내가 필요한 것은 1초마다 시간을 감소시키고, 그 시간을 출력해서 남은 시간을 보여주는 것이다. 만약 내 턴일 경우 오목알을 놓는 순간을 제외하면 타이머가 정상적으로 동작할 것이다. 우선은 스레드 한개만 사용해도 될 것 같다.
그런데 상대방 턴일 경우 나는 recv를 호출하여 블로킹 상태에 있을 것이다. 하지만 여전히 상대방의 타이머를 1초마다 갱신해서 출력해 주어야 한다. 따라서 recv를 호출하는 스레드와 타이머를 갱신시킬 스레드가 필요하다.
멀티 스레딩을 많이 안해봐서 그런지 직접 해보지 않으면 잘 모르겠다.
'게임 공부 > 게임 개발 일지' 카테고리의 다른 글
이미지 파일 컬러키 설정 꿀팁 (0) | 2020.12.05 |
---|---|
[Gomoku] 중개 서버를 통해 NAT 뒤의 두 클라이언트를 연결시키려면 | 홀펀칭(hole punching) (0) | 2020.11.12 |
[Gomoku] 소켓 관련 함수 궁금점들 (0) | 2020.11.03 |
[Gomoku] Ready 패킷을 상대 호스트에 어떤 형태로 보낼 것인가? (0) | 2020.11.01 |
[Gomoku] 멀티 플레이어 오목 게임 개발 중... (0) | 2020.10.30 |
댓글