PNaCl 게임에서 시간을 추적하기 위해 "tick time"을 사용하려고합니다. 사용자가 시스템 시간을 조정하면 게임 시간에 영향을주지 않아야합니다.pp :: Core :: GetTimeTicks() 시스템 잠자기시 pp :: InputEvent :: GetTimeStamp()와 동기화되지 않음
pp::Core::GetTimeTicks()
과 pp::InputEvent::GetTimeStamp()
을 모두 사용하여 게임 시뮬레이션을 실행하고 싶습니다. 논리는 다음과 같습니다. 입력 이벤트가 발생하면 게임 시간이 해당 이벤트의 pp::InputEvent::GetTimeStamp()
과 일치 할 때까지 시뮬레이션을 실행합니다. 렌더링 완료 콜백이 발생하면 게임 시간이 pp::Core::GetTimeTicks()
과 일치 할 때까지 시뮬레이션을 실행하십시오.
이 시작 잘 작동하고,이 유스 케이스는 pp::Core::GetTimeTicks()
에서, 지금까지의 내가 문서를 이해할 수로 지원 될 것으로 보인다 다음에 몇 가지 이벤트 시간을 전달할 때
이 시계는 브라우저에 의해 사용됩니다 모듈 (예 : PP_InputEvent :: time_stamp_seconds 필드 사용). 내가 잠을 다시 열려면 컴퓨터를 넣을 때
그러나,이 두 시계는 컴퓨터가 자고있는 시간의 양에 의해 동기화 될 것으로 보인다. pp::InputEvent::GetTimeStamp()
이 실행 된 것 같으면 시스템이 대기 상태 일 때 pp::Core::GetTimeTicks()
이 실행을 중지 한 것처럼 보입니다. 입력 이벤트는 시스템이 대기 상태에 있었던 시간만큼 코어 클럭보다 앞서 타임 스탬프 처리됩니다.
이 두 시계를 사용하여 시간을 절약합니다. 해결 방법은 입력 이벤트에 대한 응답으로 시뮬레이션을 실행할 때 코어 클럭을 사용하는 것이지만 키 누름과 화면에서의 동작 사이에 대기 시간이 길어질 수 있습니다. 또 다른 해결 방법은 단순히 입력 이벤트에 대한 응답으로 시뮬레이션을 실행하지 않는 것입니다. 그럼에도 불구하고, 나는이 수수께끼의 바닥에 가고 싶습니다.
구현시 버그입니까? 이 시간은 동기화되어야한다고 말하는 것 같은 문서의 버그입니까? 또는 설명서를 잘못 읽었습니까?
Linux 용 Chrome 33.0.1750.152 (공식 빌드 256984)에서이 현상이 발생합니다.