我目前有改变颜色的基本功能
--ngram f3
使用它是用于打印我理解的不同颜色的新文本,但我正在创建一个需要突出显示已打印文本的游戏。我知道这可以做到,但我不知道怎么做..
答案 0 :(得分:0)
一种方法是删除当前文本并重新打印相同的文本,无论如何系统今天都快速点亮,这样你就不会有任何区别。
为此,我们使用\ r
cout << "something" << '\r' << flush.
&#39; \ r&#39;表示&#34;回车&#34;,它将进入行首。
&#39; flush&#39;意味着&#34;确保我刚刚打印的内容现在到达输出。
在此重印后,使用您选择的颜色重新打印相同的文字。
注意:这种情况发生得太快,您会觉得文字改变了颜色。
答案 1 :(得分:0)
正如其他人所说,你需要以不同的颜色重新打印相同的文字以“改变”颜色。
但是考虑到您正在使用Win32控制台,我认为建议依赖平台相关代码 - &gt; Setting the Cursor Position in a Win32 Console Application
移动光标可以更直接地控制您想要实现的目标(在控制台中重写/覆盖已打印的文本)。
另一个答案提到打印'\r'
到控制台,它可以正常工作,但仅适用于当前行,因为在你自己周围移动光标可让你自由地“改变”整个缓冲区中的任何字符控制台。
另一方面,正如你已经提到过的,还有system("cls")
人们可能认为这是一种更“独立于平台”的方式,但与a相比,它的速度非常慢(而且是一种hackish)直接控制所以我强烈建议不要使用它。 (如果你想知道为什么,请参阅system("pause"); - Why is it wrong?,授予它不同的命令但适用相同的原则)