使用ncurses在c ++中进行移动绑定

时间:2011-05-29 16:51:53

标签: c++ ncurses roguelike

我不能让这个运动绑定到工作。我正在使用ncurses库,update_ch和oldch是全局变量。 KEYERR是一个宏设置为-120(我只是不处理那些按键)。我试图限制玩家,使他不能向上,向下,向左或向右,但他必须继续按下它们移动。它不起作用,你仍然可以按住键并移动。有什么建议?我的逻辑必须关闭。

    if(update_ch != KEYERR)
    {
          oldch = update_ch;
    }
    update_ch = getch();
    if(oldch == update_ch)
    {
          update_ch = KEYERR;
    }

1 个答案:

答案 0 :(得分:1)

  

我试图限制玩家   他不能举起,举起,离开,或举起   对,但他必须继续按下   他们搬家。

我很确定这对诅咒是不可能的。如果我没记错,curses只接收来自终端的字符。它无法控制有关该过程的任何内容。

如果用户持有按键而不是连续按下,则测量这些读数之间的时间可能会给您一个提示。我的意思是,当你阅读时,请记录以下内容

  • 重读
  • 读取时间(毫秒精度)

当您阅读某个值时,请询问以下内容:

  • 和最后一把钥匙一样吗?
  • 当前时间和上次阅读时间之间的差异是什么?

如果它是相同的键并且时间差小于某个阈值,您可以决定他按住键。