首先,一些背景故事:
我正在制作一个可能相当于“ roguelike ”的游戏,这样我就可以运用我脑海中浮现的一些有趣的想法。游戏玩法不会是地牢爬行,但无论如何,显示将以类似的方式完成,带有简单的 ascii 字符。
由于这是一个自我练习,我努力自己编写大部分代码。
最终,我希望游戏可以在任意大的游戏世界上运行。(到了我设想将游戏联网并跨越计算机实验室中的许多显示器的地步)。
现在,我有一些代码可以读取和写入文本控制台的任意部分,并设置了一个简单的分区系统,以便我可以有效地进行路径查找。
现在的问题是:
我已经运行了一些基准测试,最大的瓶颈是重新绘制文本控制台。
拥有这么大的游戏世界需要对显示进行智能更新。我不想每帧都重新推送我的整个游戏缓冲区...我需要一些关于如何设置它的指针,以便它只绘制游戏的部分已经更新。(而不仅仅是我现在拥有的单个角色)
我一直在通过 windows.h 操作 Windows 控制台,但我也有兴趣让它通过连接到服务器的 puTTY 客户端在 linux 机器上运行。
我尝试过调整一些视频处理程序,因为像素和字符之间的比例接近 1:1,但我没有运气。
真的,我想简单解释一下它背后的一些原则。但是一些示例(psudo)代码也会很好。