我开始尝试用 C++ 用 curses 制作一些简单的控制台游戏,我的第一个项目只是一个可以在里面走动的大房间。我想我将通过让程序保存正方形的状态来实现行走角色在走,所以当他走到下一个方格时,它可以恢复那里的任何东西。问题是,我不知道如何将某个位置的字符保存到变量中,令我惊讶的是,我似乎找不到任何全面的诅咒文档。我正在寻找这样的功能:
int storage = mvsavechar(1,1);
有没有这样的功能?
您正在寻找mvinch():
int storage = mvinch(1, 1) & A_CHARTEXT;
我会将屏幕状态存储在 80x24(或其他)字符数组中。但是您可能会调整数组的大小以匹配“大房间”的尺寸。如果房间非常大,您可以使用(例如)坐标和内容的链接列表来存储稀疏数组的等价物。
诅咒可能没有你想要的功能,因为早期的终端可能没有被询问屏幕内容的能力。
我对诅咒知之甚少,如果诅咒保持屏幕内容的详细信息,你想要的可能是可能的——但这似乎不太可能。
您将需要将房间的数据存储在程序中的某种数据结构中。Curses 是一个输出库。