게임용 MVP를 작성했습니다. 하지만 이제는 스톱워치를 추가하여 플레이어가 게임의 왼쪽 하단이나 오른쪽 하단에 카운트 다운 시간을 볼 수있게하고 싶습니다. 이것은 내 게임에 그것을 포함하는 방법과 같은 중지 시계를 만드는 방법에 대한 질문이 아닙니다.내 게임에 타이머를 추가하기 위해 스레드를 구현하는 방법은 무엇입니까?
화면에 시계 숫자를 렌더링하는 방법을 알았지 만 문제는 입력을 사용하여 시계를 트리거 할 때 게임이 시계 루프에 걸린 채로 남아 있다는 것입니다. 몇 가지 코드를 설명하는 것이다 :
가// when the player makes her first input the clock is triggered
if (!CLOCK)
this->clockStatus(ON);
// within the clockStatus function
void Game::clockStatus(TimerState Status)
{
do { /* Infinite Loop */
t2->getTimefromSeconds(getCurrentSysTime());
break;
} while (1);
while (1) { /* Another infinite loop */
t_inter->getTimefromSeconds(getCurrentSysTime());
t1 = (Timer*)(t_inter - t2);
}
}
(T1)의 출력을 통해 표시된다. 명확성을 위해
t1.display();
, TimeState 스톱워치 상태 (ON/OFF)를 관리하는 ENUM 타이머가되어있다 실제 스톱워치 클래스.
연구를 마친 후 플레이어가 스톱워치를 작동시키는 게임에 처음 입력 할 때이를 위해 새 스레드를 만들어야한다고 결론을 냈습니다. 이렇게하면 주 기능이 정상적으로 실행되고 보조 스레드가 게임 시간을 계산할 수 있습니다. 이것을 구현하는 방법을 읽을 수있는 자습서 나 pdf 또는 연습이 있습니까? 또한 모든 유용한 제안을 환영합니다.
억측이 상황에서'threads'이 필요합니다, 당신은 중간 거기. 디스플레이/렌더링에 어떤 플랫폼을 사용하는지 알고 있으면 도움이됩니다. 예를 들어 Qt를 사용한다면 Qt의 Timer 클래스를 쉽게 사용할 수 있습니다. 그것은 위젯 디스플레이 시스템이있는 그대로 멀티 스레드입니다. – Quirk
'타이머'란 무엇이며't1','t2' 및't_inter' 유형은 무엇입니까? – qxz
OpenGL과 GLFW를 사용하는 임. 하지만 C++을 사용하여 스톱워치를 작성하고 싶습니다. – MagnusHimmler