生成一个 ASCII 游戏的窗口。

3
我正在尝试为一个作业编写一个ASCII游戏。程序必须完全用C编写,不能使用C++。如何让程序打开一个能够渲染ASCII艺术的窗口呢?我想创建一个特定大小的窗口,可以显示多种颜色。简单的控制台窗口是不够的。
另外,在相关问题上,有人能给我展示一个直接写入缓冲区的函数吗?printf速度太慢,并且似乎对我想要生成的图形不够灵活。
非常感谢任何帮助。提前致谢。

1
你的目标操作系统是什么? - pib
我正在编写Windows的代码,具体来说是Windows XP。 - Flopdong
你的老师会允许你使用ncurses吗?(提示:可能不会) - Earlz
3个回答

3

一个简单的控制台窗口是不够的。

我不同意。对于你想做的任何事情,控制台窗口都足够了。颜色、完整的ASCII范围、高亮...

此外,有关的问题,有人能展示给我一个直接写入缓冲区的函数吗?printf太慢了。

你需要多快才能写入?如果你自己形成字符串并调用printf,它实际上只是为你将其复制到缓冲区中。


我的游戏是一款类似音速的游戏,你需要从左到右奔跑,速度至关重要。在使用printf进行一些简单测试时,我发现将字符串打印到屏幕上的速度很慢,以至于我能看到屏幕闪烁。 - Flopdong
1
请确保将 stdout 设置为使用输出缓冲。它会自动执行此操作,但默认情况下,它会在每个 \n 后刷新缓冲区。 - Earlz
3
屏幕闪烁是由于按顺序绘制线条所造成的 - 您需要禁用缓冲区的自动刷新,并在每次屏幕绘制后手动刷新它。 - Anon.

0

尝试使用ncurses

虽然我认为它目前(v5.7)不适用于Windows

甚至可以使用AAlib


1
有一个 ncurses 的移植版在某个地方可以在 Windows 上真正使用,我以前用过它。 - Earlz

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接