Как сохранить персонажа, занимающего определенное место в проклятиях? - PullRequest
1 голос
/ 05 ноября 2010

Я начинаю пытаться делать несколько простых консольных игр на C ++ с ругательствами, и мой первый проект - это просто большая комната для прогулок. квадрат, по которому ходит персонаж, поэтому, когда он выходит на следующий квадрат, он может восстановить все, что там было. Проблема в том, что я не знаю, как сохранить символ в определенной позиции в переменной, и, к моему удивлению, я не могу найти какую-либо исчерпывающую документацию по curses. Я ищу такую ​​функцию:

int storage = mvsavechar(1,1);

Существует ли такая функция?

Ответы [ 3 ]

1 голос
/ 05 ноября 2010

Вы ищете mvinch () :

int storage = mvinch(1, 1) & A_CHARTEXT;
0 голосов
/ 05 ноября 2010

Вам нужно будет сохранить данные для комнаты в какой-то структуре данных в вашей программе. Curses - это выходная библиотека.

0 голосов
/ 05 ноября 2010

Я бы сохранял состояние экрана в массиве символов 80x24 (или как угодно).Но, вероятно, вы бы подстроили размер массива в соответствии с размерами вашей "большой комнаты".Если бы комната была очень большой, вы могли бы сохранить эквивалент разреженного массива, используя (например) связанный список координат и содержимого.

У проклятий, вероятно, нет нужной функции, потому что ранние терминалы, вероятно, не делалиу меня есть возможность опроса о содержимом экрана.

Я не знаю много о проклятиях, что бы вы хотели, возможно, если бы проклятия сохраняли детали содержимого экрана - но это кажется очень маловероятным.

...