kbhit

    0热度

    4回答

    我试图用控制台获得快速时间事件类型的交互,并设法使用conio库获取它。可悲的是,我正在开发的这个项目需要在Windows和Linux上编译代码,我无法找到一种方法来改变它。 有什么我可以做得到理想的效果还是应该放弃这个概念?以下是我创建的函数的代码。 #include <stdio.h> #include <time.h> #include <string.h> #include <std

    1热度

    1回答

    我想提出一个方案,我有一个无限循环。我用kbhit()来检测一个键是否被按下。我也在循环中使用延迟。所以,问题是,如果我按下键我必须等待延迟功能给执行的kbhit()函数的行为的时候..... while(1) { delay(1000); if(kbhit()) { // // // // } } //现在我必须等待1000毫秒执行的kbhit()的代码如何删除这个问题.

    0热度

    3回答

    我在使用kbhit和if语句时所做的游戏中有一个奇怪的滞后反应。但是,当我使用switch语句时,我看不到这个相同的滞后问题。这里是我的代码在IF和开关。 下面的代码导致滞后,当我尝试移动角色时,为了角色移动,我必须按两次按钮。导致没有滞后 if (kbhit()) { switch (getch()) { case 'w': PlayerX = Pl

    2热度

    6回答

    我想用“按任意键继续”功能使用kbhit()。 但是,在循环中使用了kbhit()之后,按下的键存储在标准输入中。 因此在下一个scanf()中,从前面按下的按键出现在输入中。 int x,b=0; printf("Press any key to continue...") while (b==0) { b=kbhit(); } system("cls");

    1热度

    3回答

    我一直在研究其中一种蛇形游戏,并且我有一个switch语句,说明如果按某个键来将蛇沿某个方向通过增加/减少,但它只会这样做,如果我拿着它。我正在寻找一种方法让蛇的位置不断递增,而用户不必拿着那把钥匙。我把一个以下的情况下 if(_kbhit()) { switch(_getch()) { case 'a' : dir = LEFT; x--;

    2热度

    2回答

    我一直在用kbhit()测试一些东西,并发现了一个带有延迟死循环的奇怪行为。在这个代码示例中,我将循环延迟为每秒运行30次。 #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <conio.h> _Bool IsKeyDown(char c) { if(kbhit()) {

    0热度

    1回答

    你好,我正在用C创建一个游戏。我想在那里每隔0.1秒打印一帧图片。在此期间,用户可能会或可能不会使用getch()输入。 我该如何编写这样的程序?下面我可以提供给你们一起工作。 do{ usleep(100000); // simple 100 mili second delay if (getch()==32) (ASCII for a space) // may or may not be

    1热度

    1回答

    我一直在尝试各种组合的if和do语句,但无法使其正常工作。我们使用Visual Studio 2015并使用C代码。代码的总体目标是使用BGI图形来模拟2D机器人(一个圆圈和一条线来指示方向),并使其执行各种任务。我被告知; 修改您的程序,以便您可以用键盘控制您的机器人。 要做到这一点,您应该初始化初始速度为0,并添加适当的语句到您的程序,以修改基于哪个键被按下的速度。举例来说,你可以 固定不变量

    0热度

    1回答

    我遇到了使用函数getch()重复键检查的问题。 这里是一个代码示例: static char g_keybuffer[256]; _Bool IsKeyDown(char c) { char ch; if(kbhit()) ch = getch(); if(ch == -32 || ch == 224) { ch = getc

    2热度

    1回答

    我有一个控制台Java应用程序,它在后台执行一些任务。如果在键盘缓冲区中存在某些东西,并且我知道所有控制台读取和测试都被阻止,Java不支持用于测试的控制台kbhit()。 我要做的是用console.readLine()之类的东西启动一个后台线程,然后在完成这个阻塞调用之后放置一些终止标志。应用程序后台任务将检查此标志并决定是否需要终止。 顺便说一句,我的应用程序正在写入控制台在其工作过程中(通