2014-01-05 4 views
0

Я пытаюсь создать программу, в которой я могу использовать клавиши со стрелками или клавиши WASD для перемещения символа по экрану (стиль rpg). Я не знаю, как правильно перерисовать доску, так как было бы так много возможных позиций. Я думал о создании 2d-массива, который занимал бы позиции. Я не прошу всех вас написать код, просто спрашиваю. Можно ли заставить символ текста перемещаться вдоль позиций по массиву?Как перемещать текстовый символ по экрану в C++

+0

_'I не прошу вас всех, чтобы написать code'_ Но мы просим вас, чтобы показать некоторые из них. –

+0

Какой O/S вы используете? Это сильно зависит от O/S – bobobobo

+0

Я использую microsoft visual C++ 2010 с окнами 7. @bobobobo – user3150762

ответ

2

Одним из способов было бы очистить «экран» и перерисовать «карту» при каждом изменении. Другим может быть только перерисовка строк, которые были изменены. Еще одним может быть положение курсора после символа, который вы хотите «переместить», распечатать обратное пространство, за которым следует, например, пробел, затем переместите курсор туда, где вы хотите, чтобы новый символ был, напечатайте другое обратное пространство, а затем символ.

Или просто используйте библиотеку, такую ​​как ncurses.

+0

Если ОС поддерживает [ConsoleScreenBuffer] (http: //msdn.microsoft.com/en-us/library/windows/desktop/ms682088(v=vs.85).aspx), вам лучше использовать их. 'cls'/полная перепечатка не будет хорошо работать на многих системах. – 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

Смежные вопросы