1

我需要一些帮助 - 我正在尝试使用 C++ 创建一个 roguelike,目前,我有一个非常简单的小屏幕,带有一个生成地图的 void(),使用“#”表示墙壁和“。” 地板。它可以通过比较一些映射玩家的 X 和 Y 值的整数来绘制玩家。我什至有一个小HUD,它会显示玩家的统计数据。

但是,问题是,这一切都是使用典型的命令控制台窗口设计的,我开始认为我做错了。

我希望玩家通过使用数字键盘在我拥有的这个空旷的大房间中移动——这很有效。通过使用 Switch,我调整了 X 和 Y 玩家值,然后再次重绘屏幕。

这就是问题所在。这实际上重新绘制了屏幕:每次我移动时,它都会重新添加 20 多条线。几次移动后,我有一个命令控制台窗口,其中包含数百行的文本。

那么我做错了什么?是否有我不知道的清除屏幕的命令?
还是我从一开始就做错了——例如,你必须按“回车”来输入你的命令,这在任何其他 roguelike 中都没有。我是一个新手程序员,所以任何和所有的帮助表示赞赏!

谢谢!

编辑:好的,谢谢大家,我现在正在使用 PDCurses 并搜索文档来弄清楚如何使用这个东西!再次非常感谢!有人请给提出这个建议的人打勾!:D

4

3 回答 3

4

你用什么方法来绘制屏幕,​​只是普通的iostream?对于这种工作,通常推荐使用名为curses的库。它可以让您在屏幕上的任何位置绘制文本,而无需滚动或重绘整个屏幕。

于 2011-08-25T06:36:09.167 回答
0

我不知道任何可靠的可移植性方法,也许尝试寻找一些面向控制台的库......无论如何在Windows下你仍然可以使用 system("cls");

于 2011-08-25T06:39:39.337 回答
0

您可以使用 ansi 转义序列:printf ("\33[2]")。

于 2011-08-25T06:41:02.427 回答