我是一个即将到来的程序员,他正在尝试用C ++(现在的控制台应用程序)构建游戏。但是一件烦人的事情是烦扰我并阻止我。问题是我希望在让游戏角色移动并生成敌人时能够多线程化。但是问题在于,因为这两个功能是单独的功能,并且setCursorPosition仅使用一个输入点,所以当这两个功能纠缠在一起时,游戏总是很混乱。有什么解决方案?如果你们需要,我可以发送一些源代码来尝试进一步解释我的问题。示例和视频非常感谢!
答案 0 :(得分:1)
一种解决方案是只让一个线程更新屏幕。
例如,您可以有一个帧缓冲区,这是线程要插入的内存区域,然后是另一个线程,该线程以规则的间隔将整个帧缓冲区绘制到屏幕上。当使用两个这样的缓冲区时,您可以隐藏中间的绘制步骤。但是实际上,这种线程设计非常混乱。
最好的解决方案是仅使用一个单线程(完全没有多线程,完全没有std :: thread)。在我看来,您不需要多个线程,而是一个基于事件的系统,其中各个实体独立行动并绘制在同一屏幕上。您不需要线程。
多线程是2019年的火箭科学,尤其是在C ++中。除非您是专家,否则请勿这样做。