【问题标题】:Simultaneous looping [closed]同时循环[关闭]
【发布时间】:2012-12-30 15:12:20
【问题描述】:

我正在尝试用 C++ 制作一个基本的简单游戏,其中用户需要不断地输入,并且应该有其他东西的恒定输出(移动对象(*))。

即使用户没有输入任何内容,对象也必须保持移动。这需要同时运行两个循环,我不知道该怎么做。

没有图形,只有基本的符号和字母。

【问题讨论】:

  • 使用终端库,例如ncurses。您可以在STDIN_FILENO 上等待轮询事件循环;不需要线程。
  • 问题/要求不是很清楚。
  • 我是使用 TC 编程的新手,有没有办法同时输入和输出不同的东西?
  • ^这个问题让我觉得您显然没有阅读 cmets,或者选择忽略它们。您是否至少在谷歌上搜索“线程”?
  • 是的,它是一个第三方库,但我告诉我我不太懂 c++,这是我在学校学习 c++ 的第 4 个月。

标签: c++ loops


【解决方案1】:

您不需要两个同时循环。你应该只有一个循环。在每次循环迭代中,您将更新游戏的输出,然后检查用户是否输入了任何输入。如果他有,那么您阅读并处理它;否则,您只需继续下一个循环迭代。使用 _kbhit 和 _getch 函数是一种简单的入门方法,但最终您可能需要使用更高级的东西,如 ncurses 或 Win32 控制台函数。

while( !gameOver ) {
    DisplayGameState();

    if( _kbhit() ) {
        int c = _getch();
        ProcessInput( c );
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多