c++ - 在接受输入时运行后台循环 (C++)
问题描述
我目前正在开发一个简单的游戏,但我对其中一个核心机制感到非常困惑。我希望能够运行一个后台循环,每秒钟左右更新一次信息(例如货币、位置等)。但是,我希望用户能够随时输入操作而不会中断循环。然后,这些操作将改变后台循环更新信息的方式。我最近的尝试是让两个线程同时运行。一种会运行后台时钟,另一种会持续开放输入并做出适当的反应。但是,我发现输入线程很难影响后台线程。他们都只是在自己的小世界里奔跑。
关于如何解决这个问题的任何想法?多线程是正确的方法吗?任何帮助,将不胜感激 :)。如果需要,我可以展示我的一些代码。
解决方案
简单的方法:如果更新过程不花费太多时间,则在用户进行任何更改后立即更新信息。这样你就不需要多线程了。基本思路,如果有变化就更新。
高级方法:您将有 2 个线程。第一个线程接收来自用户的操作,将其排队。第二个线程读取队列中的动作并根据动作更新信息。看起来像这样:INPUT 线程 -> [up,down,...,left,right,up] -> UPDATE 线程
您可以轻松地搜索解决方案,因为这类问题非常“经典”。
推荐阅读
- java - java中的javascript解析器
- c - 如何在c中打印动态数量的占位符?
- authentication - Power BI RS - 如何进行基本身份验证?
- xaml - UWP XAML 只制作 ListView 的子项
- nlog - Nlog 配置 Nlogviewertarget
- typescript - 映射元组类型/数组:将数组作为元组传递给函数
- javascript - 在“mdbvue”中找不到导出“mdbDatePicker”
- rest - 在 Jenkins 管道中,执行相互身份验证 REST 请求的正确方法是什么?
- android - 您上传了以调试模式登录的 APK 或 Android App Bundle
- go - 如何为 REST 服务生成代码覆盖率