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

C++控制台游戏 注:一些要用到头文件 youxi.h 不会弄得更换成最底下的代码就可以了!!! 阅读详情

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



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

        从黑暗世界到色彩斑斓的确是有不少的进步,那么概念图中为什么只存在矩形这个形状而没有其他形状呢?
        我们都知道控制台是一个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如何,且看下回分解。
【C++/控制台】(附源码)控制台小游戏 —— 电子斗蛐蛐 一个C++控制台小游戏,附上一篇优优优质的实现思路。 阅读详情

相关推荐

利用VS中C++控制台实现小游戏--贪吃蛇

利用VS中C++控制台实现小游戏--贪吃蛇

山无垢山城的博客 448

「C++控制台生存游戏」暗黑体素 DarkVoxel 控制台版

控制台也能写出如此奇葩的生存游戏!

cjz2005的博客 1327

python控制台小游戏

刚刚接触python的小垃圾,哈哈哈,用一维的列表来制作的地图,通过操作列表中的数据再显示在控制台上就成了一个小游戏。一开始本来想用二维的列表来制作的可是想到数据交换的时候没有一维的便利就果断放弃了,果然做了之后发现还是一维的列表好用。主要的逻辑是这样的:先初始化10*10的地图,然后将地图中点的数据替换成角色来初始化角色,用同生成角色一样的方法来初始化金币和敌人,之后在死循环中放入地图刷新显示、角色控制代码和敌人自动的代码就完成游戏的主要流程。

NOHEADLITTLEGBG的博客 839

<C语言>关于使用控制台实现扫雷游戏的代码实现

说明:ROW和COL为输出的棋盘大小,即9x9棋盘;ROWS和COLS为布置雷后的棋盘大小,即11x11棋盘;同时定义了布置雷的数量EASY_COUNT为10个。使用常量方便后续调整棋盘的大小。

weixin_65327229的博客 1107

NXP MCU CAN波特率(位时间)配置详解

1. 概述 本文将会详细讲解如何设置NXP MCU的CAN波特率、位时间、采样点等属性。 波特率即CAN总线传输频率,位时间是波特率的倒数,例如波特率是500K,那么位时间 = 1 / 500000 = 0.000002s = 2000ns。 我们先来看一下S32K144单片机的EB中与CAN总线波特率相关的可配置参数有哪些: ...

weixin_42967006的博客 9691

VirtualBox 7.0.8 + Android-x86 9.0 保姆级安装教程(附图形界面卡顿解决方案)

本文提供VirtualBox 7.0.8与Android-x86 9.0的详细安装教程及性能优化方案,帮助开发者解决图形界面卡顿问题。从环境准备到高级配置,涵盖硬件要求、安装步骤、显存优化及ADB调试等实用技巧,显著提升虚拟机流畅度,适用于应用测试和开发调试。

weixin_29224309的博客 524

【Devc++】8款经典小游戏

我在优快云网站上收集了8款c++经典小游戏 1.贪吃蛇 /************************贪吃蛇***********************/ /**********************2012-11-20*********************/ #include <iostream> #include <cstdio> #include <cstdlib> #include <ctime> #include <c

饼干的博客 5万+

S32K344 Flash Driver实战:手把手教你实现任意字节写入与扇区解锁(含C40_Ip避坑指南)

本文深入解析S32K344微控制器的Flash驱动开发,重点解决C40_Ip驱动库的8字节对齐限制和扇区保护锁问题。通过实战案例和代码示例,详细介绍了如何实现任意字节写入、扇区解锁及性能优化策略,为Bootloader和OTA升级等应用提供可靠解决方案。

weixin_33713707的博客 432

C++实现控制台迷宫小游戏

前言 这个程序是我一年前写的,那是还不是很成熟,导致C、C++混在一起,警告一大堆。。 不过这个程序是我第一个成功做成的游戏。 虽然关卡只做了3关,但是这个游戏代码框架值得参考。 我大部分的程序都包含了我自己做的头文件,因此弄这儿来的时候必须替换一大堆东西,可能有些BUG。敬请谅解。 原来还是有音乐的,因为没有资源的问题,把它去了,如果真想要可以到这里下载,这里的源文件是真正的源文件,没有替换过的.........

cjz2005的博客 2834

Oracle EBS 帐套(Ledger/SOB)如何定义会计主体、如何支撑多准则 / 多报告、组织与帐套的绑定关系、以及项目落地时的设计差异。下面从实现逻辑、核心要素、组织模型、多账簿、科目设计、项

本文对比了Oracle EBS R12与SAP S/4HANA在帐套(Ledger)设计上的核心差异。Oracle采用4C架构(科目/币种/日历/准则),帐套作为独立会计主体,主辅账物理隔离;SAP则以公司代码为主体,通过平行分类账在同一凭证中实现多准则核算。关键差异体现在:Oracle强调边界隔离,适合差异大的集团;SAP注重统一视图,适合实时合并需求。实施时需注意:Oracle避免过度建账套,SAP需统筹科目与维度设计。两者分别体现了"盒子"与"滤镜"的设计哲学。

金牌架构师 417

华为 MetaERP 集成盘古大模型、天筹 AI 求解器等生成式 AI 相关技术能力,结合华为云数智融合平台的支撑,在供应链预测中围绕需求预测、物料匹配

华为 MetaERP 集成盘古大模型、天筹 AI 求解器等生成式 AI 相关技术能力,结合华为云数智融合平台的支撑,在供应链预测中围绕需求预测、物料匹配、风险预警等核心场景开展实践,大幅提升了供应链预测的精准度与效率,以下是具体实践内容及成效: 动态需求预测,降低库存偏差华为供应链涉及数万种采购物料,物料清单层级高,且市场需求波动大。MetaERP 集成华为云 ModelArts 等工具构建专属动态需求预测模型,融合深度学习算法,纳入市场趋势、历史销售、产能数据等多维度信息进行综合预测。在华为自身供应链应

金牌架构师 701

【贪吃蛇】C++实现控制台小游戏

使用C++实现控制台的贪吃蛇小游戏

m0_59364726的博客 426

基于深度学习的农作物病虫害检测识别系统:YOLOv8 + UI界面 + 数据集

该系统的目标是使用YOLOv8模型自动检测农作物的病虫害,并通过UI界面提供实时反馈。用户可以通过上传图像,系统会输出图像中是否存在病虫害以及具体种类。数据集准备与处理:收集并准备包含农作物病虫害图像的数据集,并进行标注和数据增强。YOLOv8模型训练:使用YOLOv8训练农作物病虫害检测模型。UI界面设计与开发:开发一个用户友好的界面,支持上传图像并展示检测结果。系统测试与优化:评估模型的准确性、实时性,并对系统进行优化。

YOLO 883

C++实现五子棋小游戏

C++实现的五子棋小游戏,创建类编写并且包含人机对战悔棋等功能

m0_72487560的博客 2078

【华为OD机试真题】439、精准核酸检测 | 机试真题+思路参考+代码解析 (C++、Java、Py、C语言、JS)

题目描述 >为了达到新冠疫情精准防控的需要,为了避免全员核酸检测带来的浪费,需要精准圈定可能被感染的人群现在根据传染病流调以及大数据分析,得到了每个人之间在时间、空间上是否存在轨迹的交叉。现在给定一组确诊人品编号(X1 X2 X3.....n)在所有人当中,找出哪些人票要进行核酸检测,输出需要进行核酸检测的人数。(注意:确诊病例自身不需要再做核酸检) >  需要进行核酸检测的人,是病毒传播链条上的所有人员,即有可能通过确诊病例所能传播到的所有人   例如:A是确诊病例,A和B有接触、B和

KJ.JK 1434

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【C#项目实战】控制台游戏勇士斗恶龙(1)——游戏初始设置以及开始界面

通过简单项目带你入门C#游戏编程!!!

君兮_的博客 3239

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

用C语言写个控制台扫雷游戏(附完整代码)

C语言编写控制台扫雷游戏

apull的专栏 7048

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

简单好玩的Windows控制台游戏集合应用

Console Games是Windows商店中的一款控制台游戏集合应用,其中包含12款经典的休闲游戏。

BinField的专栏 1322

C++实现简单的扫雷游戏(控制台版)

这篇文章主要为大家详细介绍了C++实现简单的扫雷游戏,控制台版的扫雷游戏希望大家喜欢,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。只是一个雏形,能够让玩家执行翻开方块的操作并且判断输赢,还未添加标记方块、游戏菜单、记录游戏时间、重新开一局等等的功能。玩家输入坐标的方式来翻开方块只适用于小型的“雷区”,若“雷区”大了,用坐标会变得很不方便。用C++写的一个简单的控制台版扫雷游戏。以上就是本文的全部内容,希望对大家的学习有所帮助。C++新手的代码,请各位多包涵。

weixin_70407612的博客 401

【C++】控制台小游戏

W向上,S上下,A向左,D向右。

Ub4959d11430的博客 1739

C++ 经典小游戏

【代码】C++ 经典小游戏。

m0_73232096的博客 1万+

C++控制台实现简化版吃鸡游戏

C++控制台实现简化版吃鸡游戏

yaosichengalpha的博客 1975

c/c++趣味小游戏集

可以在Dev-C++中编译c/c++小游戏

cnds123的专栏 4万+

控制台应用--C语言实现简单贪吃蛇(无图形库)

简单的控制台小程序 基于循环队列的贪吃蛇

请出示您的健康码 1038

C++开发控制台小游戏之旅(2)——《五子棋》

相信每一位學編程的朋友,都曾有一顆游戲夢想,希望能親手打造出屬於自己的游戲! 如果我可以創作一款結合AR技術的、如**動漫《游戲王》**中那樣進行決鬥的游戲,該有多好! 游戲背景 《五子棋》這款游戲,從我讀小學起就經常在玩,與小夥伴們一起在課餘時間一決高下,不亦樂乎!曾經的美好,只留下回憶,但我相信我的人生始終會與快樂相伴…… 如今我萌發心思,欲抽空發展一下愛好,自己動手逐步打造出一款可玩的小游戲,同時也為廣大游戲編程愛好者們提供略微的參考,一起爲了夢想而前行! 本游戲采用純C++語言進行編寫,可在Wi.

游行天涯 15万+
上一篇: C++游戏编程:《控制台小游戏系列》之《前言》
下一篇: C++游戏编程:《控制台小游戏系列》之《彩画师-Graphics》
fa6507
博客等级 码龄16年 84粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值