C++로 타이머를 만들고 사용자가 버튼을 누르면 프로그램은 눌려진 버튼의 이름과 눌린 시간을 배열에 기록합니다.타이머를 C++의 배열에 저장
나중에 사용자가 수행 한 작업을 '재생할'수 있기를 원합니다. 타이머를 시작하고 배열에 정확하게 기록 된 시간에 버튼을 누르면 시뮬레이션이 가능합니다.
어디에서 시작하는 것이 가장 좋을까요? C++에서 타이머 함수가 있습니까?
C++로 타이머를 만들고 사용자가 버튼을 누르면 프로그램은 눌려진 버튼의 이름과 눌린 시간을 배열에 기록합니다.타이머를 C++의 배열에 저장
나중에 사용자가 수행 한 작업을 '재생할'수 있기를 원합니다. 타이머를 시작하고 배열에 정확하게 기록 된 시간에 버튼을 누르면 시뮬레이션이 가능합니다.
어디에서 시작하는 것이 가장 좋을까요? C++에서 타이머 함수가 있습니까?
How to get current time and date in C++?에 대한 답변보기 C++에서 시간에 대한 표준 라이브러리는 대답은 언급으로 사용 부스트는보다 현대 날짜 시간 API를 원하는 경우 C.에서 오는 ctime이있다 http://www.boost.org/doc/libs/1_52_0/doc/html/date_time/date_time_io.html
당신이struct ButtonEvent{
EventInfo ei;
std::chrono::milliseconds time_stamp;
};
struct Recorder{
std::chrono::steady_clock::time_point start_time_;
std::deque<ButtonEvent> events_;
void StartRecording(){
start_time_ = std::chrono::steady_clock::now();
}
void HandleEvent(EventInfo e){
ButtonEvent be;
be.time_stamp = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::steady_clock::now() - start_time_);
be.ei = e;
events_.push_back(be);
}
void Playback(){
std::chrono::steady_clock::time_point
playback_time =std::chrono::steady_clock::now() ;
while(events_.size()){
std::chrono::milliseconds ts =
std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::steady_clock::now() - playback_time);
if(events_.front().time_stamp <= ts){
EventInfo e = events_.front().ei;
// playback the event
//...
events_.pop_front();
}
// Some kind of sleep if you want
}
}
} 같은 뭔가를 할 수
;
여기서 EventInfo는 이벤트를 재생하는 데 필요한 정보가있는 구조입니다.
타임 스탬프입니다. 나는 그걸 어떻게 돌려야 하죠? – panthro
죄송합니다. 나는 당신의 질문을 오해했다고 생각합니다. – axiom