C++游戏编程:《控制台小游戏系列》之《瓦解黑暗统治》

本文介绍使用控制台API进行绘图的方法,包括通过矩形组合实现多彩界面,并利用GetStdHandle、SetConsoleCursorPosition等API控制光标位置及字体颜色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们眼中的控制台:黑暗的小屏幕中飘逸着几行雪白的文字,如图所示:



本系列”眼中“的控制台概念图:色彩丰富,如图所示:

        从黑暗世界到色彩斑斓的确是有不少的进步,那么概念图中为什么只存在矩形这个形状而没有其他形状呢?
        我们都知道控制台是一个80*25的字符模式界面,控制台是以字符为单位的字符界面,而不像Windows程序那样的以像素为单位的窗体界面。即使能在控制台构造比如圆形、不规则多边形等其他形状,也会发现构造出来的图形锯齿比较严重,影响了美观。所以本系列游戏以基本矩形为绘图基础,所绘出来的界面大多是N个不同矩形组合而来的。尽管形状少,可是与以往的控制台相比,进步不少,最后你会发现由矩形构成的界面也不会太差!
        除了界面之外,字符也有了丰富的色彩,增强了画面的表现力。
        读者会发现,楼主说的只是一个概念图,纸上谈兵么!非也,作概念图只是用来对比实际效果,看控制台能否做到那个程度,下面这个图便是实际控制台中实现的效果:

        细心的读者会看到,控制台的面貌与以往的稍微不同:除了画面色彩丰富了控制台题也变了,而这一切的变化,核心在于以下几个操作控制台的APIs:

函数名参数描述函数描述
HANDLE GetStdHandle(DWORD nStdHandle) ;   
nStdHandle的值类型:
STD_INPUT_HANDLE 标准输入的句柄
STD_OUTPUT_HANDLE 标准输出的句柄
STD_ERROR_HANDLE 标准错误的句柄
返回标准的输入、输出或错误的设备的句柄,
也就是获得输入、输出/错误的屏幕缓冲区的句柄。
SetConsoleCursorPosition(void*,COORD);
void* 控制台标准句柄
COORD 修改成员X与Y可以实现光标位置控制

API中定位光标位置的函数
SetConsoleTextAttribute(void*,unsigned short);void* 控制台标准句柄
short 字体颜色属性,具体值查看WINCON.H
API设置字体颜色和背景色的函数
SetConsoleTitle(__in LPCTSTR lpConsoleTitle);lpConsoleTitle 控制台窗口的标题设置控制台窗口的标题
       有了这几个API基础,便能封装这些API,构造一个方便在控制台下绘图的类,为以后开发控制台小游戏作重要准备。受GDI+中的Graphics类的设计影响,我们也封装一个简单版本的Graphics类,用于绘制字符串、绘制矩形和填充矩形等基本功能,如要添加更多功能,就要读者自行添加了。
        欲知简单版Graphics如何,且看下回分解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值