2014-01-05 49 views
0

我試圖做一個程序,我可以使用箭頭鍵或WASD鍵在屏幕上(RPG風格)移動一個角色。我沒有任何線索,因爲會有很多可能的位置,所以如何輕鬆地重新繪製板子。我正在考慮創建一個可以容納職位的二維數組。我並不是要求你們全部編寫代碼,我只是簡單地問。是否有可能使文本字符沿陣列的位置移動?如何在屏幕上移動文本字符在C++中

+0

_'I不是問你所有寫code'_但我們要求你展示一些。 –

+0

您使用的是什麼操作系統?這是高度依賴於O/S – bobobobo

+0

我正在使用Microsoft Visual C++ 2010與Windows 7. @bobobobo – user3150762

回答

2

一種方法是清除「屏幕」,並重新繪製「地圖」在每一個變化。另一個可能是隻重畫已經改變的行。還有一種可能是將光標定位在要「移動」的字符之後,打印退格,然後是例如後退。一個空格,然後將光標重新定位到希望新字符的位置後面,然後再打印另一個退格符和字符。

或者乾脆使用一個庫如ncurses

+0

如果操作系統支持[ConsoleScreenBuffer](http: //msdn.microsoft.com/en-us/library/windows/desktop/ms682088(v=vs.85).aspx)類型的函數,你最好使用它們。在很多系統上,「cls」/ full reprint的性能不佳。 – bobobobo

0

在Windows上,您可以使用SetConsoleCursorPosition函數將光標移動到您喜歡的任意任意XY座標。

要做到這一點,你需要一個HANDLE到控制檯,這是相當容易得到

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); 

More Windows Console functions

See here for an example

+0

我用什麼庫來做到這一點。我試過了,它沒有認出處理的東西。 @bobobobo – user3150762

+0

你'#include ' – bobobobo

+0

謝謝!!這有助於很多:) @bobobobo – user3150762