【发布时间】:2013-02-25 04:32:20
【问题描述】:
我正在制作基于文本的 RPG,我真的很想模仿时间。
我可以在玩家每次输入内容之间留出一些时间,但如果可能的话,我希望它比这更好。我想知道多线程是否是一个很好的方法。
我在想可能只是在后台有第二个非常简单的线程,它只有一个循环,每 1000 毫秒循环一次。每通过一次循环,世界时间将增加 1 秒,玩家将恢复一点生命值和法力值。
这是多线程可以做的事情,还是有一些我不知道的东西会使它不起作用? (如果它不能帮助我完成这个项目,我宁愿不要花很多时间努力学习它。)
【问题讨论】:
-
它可以完成这项工作。但是,如果您采用这种方法,那么熟悉互斥锁会为您省去一些麻烦。
-
为什么有这样的线程比替代方案更好?
-
感谢您的确认和提示。现在我知道它会帮助有经验的人提供的任何提示将不胜感激。
-
在不了解您的软件设计的情况下,这很难回答。如果没有理由启动其他线程,您可能不应该启动其他线程。如果它是文本 RPG,您可能会在循环中运行 select() 或 poll(),在收到输入时做出响应。您还可以在这些功能中设置超时,以便您可以执行“时间已过”的任务,而不管用户输入如何。但是没有你的设计,我不知道这是否是一个合适的建议。
标签: c++ multithreading time game-engine adventure