Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
阅读C中的按键,例如输入键_C_Events_Key_Sdl_Keylistener - Fatal编程技术网

阅读C中的按键,例如输入键

阅读C中的按键,例如输入键,c,events,key,sdl,keylistener,C,Events,Key,Sdl,Keylistener,我知道如何使用事件来测试按键的位置,但在C语言中,我从来没有发现如何做到这一点 我真正想要的是一个按键监听器,可以监听上、下、左、右键。我需要它在Linux中工作,所以没有Windows库。如果可能的话,不使用第三方库是我最好的选择 int main(){ //关键侦听器{ //如果(key==up){//do something} //如果(key==down){//do something} //如果(key==left){//do something} //如果(key==right){/

我知道如何使用事件来测试按键的位置,但在C语言中,我从来没有发现如何做到这一点

我真正想要的是一个按键监听器,可以监听上、下、左、右键。我需要它在Linux中工作,所以没有Windows库。如果可能的话,不使用第三方库是我最好的选择

int main(){

//关键侦听器{

//如果(key==up){//do something}

//如果(key==down){//do something}

//如果(key==left){//do something}

//如果(key==right){//do something}

//}

}


用SDL来读键盘怎么样

  SDL_Event event;
  .
  .
  /* Poll for events. SDL_PollEvent() returns 0 when there are no  */
  /* more events on the event queue, our while loop will exit when */
  /* that occurs.                                                  */
  while( SDL_PollEvent( &event ) ){
    /* We are only worried about SDL_KEYDOWN and SDL_KEYUP events */
    switch( event.type ){
      case SDL_KEYDOWN:
        printf( "Key press detected\n" );

        if (event.key.keysym.sym==SDLK_UP) 
            printf( "It was the UP key\n" );

        break;
      case SDL_KEYUP:
        printf( "Key release detected\n" );
        break;

      default:
        break;
    }
  }
  .
  .

来源:

使用SDL读取键盘怎么样

  SDL_Event event;
  .
  .
  /* Poll for events. SDL_PollEvent() returns 0 when there are no  */
  /* more events on the event queue, our while loop will exit when */
  /* that occurs.                                                  */
  while( SDL_PollEvent( &event ) ){
    /* We are only worried about SDL_KEYDOWN and SDL_KEYUP events */
    switch( event.type ){
      case SDL_KEYDOWN:
        printf( "Key press detected\n" );

        if (event.key.keysym.sym==SDLK_UP) 
            printf( "It was the UP key\n" );

        break;
      case SDL_KEYUP:
        printf( "Key release detected\n" );
        break;

      default:
        break;
    }
  }
  .
  .

来源:

您想在a)终端、b)窗口、c)X窗口系统的背景中接收按键吗?我使用SDL库以可视化方式显示程序,但我只想拥有读取按键的能力,即普通键盘,不管它是什么。在C#中,您只需使用KeyValue()SDL是一个第三方库:)您想在a)终端、b)窗口、C)X窗口系统的背景中接收按键吗?我使用SDL库以直观方式显示程序,但我只想拥有读取按键的能力Kay,这只是一个普通键盘,不管它是什么。在C#中,您只需使用KeyValue()SDL是第三方库:)很好,我如何捕获SDL#U KEYDOWN中的向上键?嗯?up键是SDL_KEYUP.event.key.keysym.sym中可以获得的keysymbol;向上键为SDLK_向上。我还更新了这个例子。很好的一个例子,我如何捕捉SDL_KEYDOWN中的向上键?up键是SDL_KEYUP.event.key.keysym.sym中可以获得的keysymbol;向上键为SDLK_向上。我还更新了示例。