2014-10-16 76 views
-5

我在嚴格的控制檯環境中構建了一個塔防遊戲的一部分,並且我卡住了一個生物的移動讓我們說「c」,我希望字母「c」開始左和在時間上相同的線移動的空間向右基本上是:在C++中滾動字符字母

C(一秒鐘後)

c (one second later) 
c and so on.... 

我認爲這可以用數組實現,但我迷失了,我希望能夠使用簡單的代碼,而不是奇怪的庫和奇怪的方法,只是儘可能簡單。謝謝

+0

使用[字符串流與填充](http://stackoverflow.com/questions/667183/padding-stl-strings-in-c)應該做的伎倆,除非這被視爲「怪異的庫和奇怪的方法」。 – CoryKramer 2014-10-16 19:03:05

+0

更新終端輸出是一項非平凡的任務,取決於您正在使用的終端。我相當確定最簡單的方法是使用「奇怪」的庫,如[curses](https://en.wikipedia.org/wiki/Curses_%28programming_library%29) – clcto 2014-10-16 19:05:24

+0

是的,可以工作,但是有一個循環它的方式,使其不斷移動?我的意思是說,我有10個生物,所以10「c」si需要它們一個接一個地出現然後離開屏幕 – Zak 2014-10-16 19:06:10

回答

0

一種方法是顯示所有的字符,然後回車('\ r'),然後重新打印行。
這可讓您「跨越」字符。 這隻適用於接收到CR時不會前進線路的視頻終端。

另一種方法是打印10個退格字符,一個空格,然後是10'c'。這可能不如上述回車方法那麼快,但值得一看。

正如其他人所說,你可能想看看終端庫,如ncurses。該庫允許您根據終端類型將光標定位在屏幕上。這可能需要設置控制檯窗口來模擬終端。