我有一个毫秒类型的变量,我想将其设置为等于一个方程。到目前为止,我已经完成了这些工作。它可以编译并运行,但是当它遇到这一行时,它将停止在下面输入if语句。
time = duration<int>(750-(lvl*50));
要注意的另一件事是,我确实有一个if语句,这也可能是我正在比较不同数据类型的问题的一部分。这是if语句:
if(time_since_last >= time) {
自最后一个变量以来的时间是不同的2 high_resolution_clock :: now()的时间差
您不应该在比较中使用间隔。请改用绝对值。例如:
next_time = curr_time + duration<int>( ... etc ... );
if( time > next_time ) {
// do something
}
您可以尝试这样的操作。要将整数值转换为毫秒,请使用std::chrono::milliseconds(value);
auto old_time = std::chrono::high_resolution_clock::now();
this_thread::sleep_for(chrono::milliseconds(500));
auto new_time = std::chrono::high_resolution_clock::now();
auto time_since_last = std::chrono::duration_cast<chrono::milliseconds>(new_time - old_time);
cout << time_since_last.count();
int value = 1000;
auto time = std::chrono::milliseconds(value);
cout << " " <<time.count();
if (time_since_last >= time) {
/* do something */
}