我有一个问题,我不知道如何解释好,但我会尝试...例如,在某些游戏中,文本输出“慢”,一个接一个地写 char,而不是所有短语都在一个时间......那么,我怎样才能复制这种行为?
我认为这样......我可以做一个循环,我写一个字符和睡眠1毫秒,写一个字符和睡眠,等等......还有另一种方法,或者这是唯一/最好/简单的方法我可以实现这个技巧吗?我正在尝试在 C++ 中执行此操作,但欢迎提出其他建议。
嗯,是的,usleep 是一个解决方案,但你应该线程化它,否则它也会减慢你的游戏速度。不过,从视觉上讲,1ms 可能还不够。我建议你做一些测试才能看到。
输出?是在终端上制作的?如果是这样,也许您也可以使用一些术语容量。
编辑:您也可以使用时钟!
如果你问我,使用单独的线程来更新一段文本会有点浪费资源。我建议这样做的方法是定义一些应该在一秒钟内显示在屏幕上的字符,然后计算自上次更新文本以来的毫秒数。然后你乘以那个值
例子:
float charsPerSecond = 60/1000;
float lastUpdated;
...
int nrChars = (int) (charsPerSecond * (currentTime - lastUpdated));
//output nrChars characters
lastUpdated = currentTime;