我应该如何在自定义命令行中处理文本IO?

时间:2014-02-03 22:08:00

标签: c++ io cmd sdl

我目前正在制作基于文本的游戏,但我被告知尽可能远离windows cmd,所以我在SDL中创建自己的命令行。

我可以显示文本,但我遇到了一些问题。目前,我将控制台的文本存储在一个大型数组中,例如'consoleText [1600]'这个工作正常,除了我渲染时。当我渲染时,我循环遍历整个数组并且它爬行停止。显然它不能在每个帧中循环遍历那个大型数组,但我无法决定如何处理这个(我假设一个大型数组是一个糟糕的选择)。

完成此任务的适当方法是什么?

1 个答案:

答案 0 :(得分:1)

基于“目前我将控制台的文本存储在一个大型数组中”我假设您正在使用SDL模拟“古代”的“古老”字符模式,其中字符可以通过放置在屏幕上随机写入在CGA的0xBC00或MDA的0xB000的正确偏移量(arg我现在感觉很老)。

两个建议:

  1. 显示一些代码。我无法相信一次只渲染1600个字符会导致SDL爬行。你可能做错了什么,没有正确地进行双重缓冲,或者其他一些。
  2. 渲染单个大字符串仍然会更快。因此,将缓冲区存储为带有换行符的单个字符串,并立即将其放入屏幕中。需要颜色使用16个缓冲区。 16个大字符串渲染速度比1600个小字符串快。