【问题标题】:SFML 2.1 getchar equivalentSFML 2.1 getchar 等效项
【发布时间】:2013-11-12 01:50:25
【问题描述】:

在 SFML 中是否有 getchar() 的等价物?我试过 getchar() 和 getch() 但它们只适用于控制台窗口,而不是图形窗口。

【问题讨论】:

    标签: c++ sfml


    【解决方案1】:

    查看events 在 SFML 中的工作方式。尤其是TextEntered

    【讨论】:

      【解决方案2】:

      要回答您的问题“是否有 getchar(); ,不是真的。 SFML 是事件驱动的,因此您确实需要检查窗口的键盘事件。

      您可以创建一个函数来发送密钥并进行切换。 我有一本“SFML 游戏开发”的游戏书使用这样的代码。 您还可以检查其他内容,例如是否按下了 shift 键,以及如果是这种情况该怎么办。

      std::string toString(sf::Keyboard::Key key)
      {
      #define KEYTOSTRING_CASE(KEY) case sf::Keyboard::KEY: return #KEY;
      
      switch(key)
      
      {
      KEYTOSTRING_CASE(Unknown)
      KEYTOSTRING_CASE(A)
      KEYTOSTRING_CASE(B)
      KEYTOSTRING_CASE(C)
      KEYTOSTRING_CASE(ect...)
      
      }
      return"";
      
      }
      

      【讨论】:

      • 不应从按键/向下/向上输入推断字符,这就是为什么会有 TextEntered 事件并且使用宏也不是真正的解决方案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-15
      • 2015-06-11
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多