【发布时间】:2022-02-04 05:56:02
【问题描述】:
我尝试在 C++ 中使用 ANSI 序列制作一个 cmd 终端游戏,但我现在卡住了。在我的游戏中,一个角色以恒定的速度稳定地移动,而敌人的移动速度比这还要快。比如,有的快有的慢。如何为所有人设置计时器?设置计时器会暂停整个执行。我希望只为特定的精灵设置一个计时器。有没有办法做到这一点?
【问题讨论】:
-
您是否熟悉多线程程序和一般线程?
-
通常,在游戏中,您有一个更新循环和更新帧之间的增量时间,因此您只需将实体的速度乘以增量时间,然后将位置修改为那个值。这种解决方案不需要计时器
-
@PaulMcKenzie 那样我就不得不在我的代码中使用大量线程。有人告诉我,这样简单的应用程序不应该使用大量线程。有更好的选择吗?
-
@UnholySheep 老实说,我是在命令终端中做游戏的。我必须手动移动角色,而不是依赖另一个库或游戏引擎。我看不出如何在没有超时的情况下完成此操作,例如
标头中的 sleep() 函数。 -
您不需要任何库或引擎来进行更新循环。这可以像
while(true)一样简单,在迭代之间保持时间戳(或使用 Windows 消息循环)
标签: c++ visual-studio-code time sprite difference