在 while 循环中计数 3 秒

标签 c microcontroller

我目前正在用“C”开发一款赛车游戏。我有一个始终处于循环状态的过程函数,直到 game_over 设置为 true。在 process 功能中,我有一个功能可以测试汽车是否停在加油站旁边,一旦停好,汽车就会停下来并恢复燃油。

我想知道自从汽车停下来加油后我如何计算 3 秒,然后让游戏在这 3 秒后继续。

我已经尝试将当前时间存储在一个变量中并在该值上添加“3 秒”,并等待时间达到此时间再继续。这显然不起作用,因为循环会不断更新当前时间。

if (fuel_stop_left() || fuel_stop_right()) {
   fuelRemaining = 10000;
   acceleration = 0;
}

最佳答案

clock_t begin;
double time_spent;
unsigned int i;

/* Mark beginning time */
begin = clock();
for (i=0;1;i++)
    {
    printf("hello\n");
    /* Get CPU time since loop started */
    time_spent = (double)(clock() - begin) / CLOCKS_PER_SEC;
    if (time_spent>=3.0)
        break;
    }

我猜这段代码应该可以帮助您解决问题。不要忘记在代码开头 #include time.h。

关于在 while 循环中计数 3 秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50578044/

相关文章:

c - 为什么当我硬编码它时 ls 与 execvp 可以工作,但是当我通过输入读入它时它就不起作用

c - do-while 循环不记得 while 中的变量

c++ - Arduino Sketch with multiple NeoPixels (功能采用不同的 NeoPixels)

embedded - 在 SPI 问题中初始化 SD 卡

c - 我试图通过从文件中读取它来创建链接列表

c - 使链表更通用

bluetooth - Arduino 串行中断

c - 微 Controller 的sprintf和printf有什么区别

大于累加器大小的二进制数转换为十进制字符

c - 输入一行后程序崩溃了。怎么修?