一、如何学习C++

用一句话形容这类问题——高默新泪。高手因为不想反复回答这类问题而沉默……新手因为苦苦找不到入门的路而流泪。

本文想要给苦恼的新手们指明一个前进的方向。

下面是小编整理好的一套系统的C++学习资料,加小编C/C++学习群(825414254)获取一整套系统性学习C/C++的资料哦!

二、控制台游戏简介

所谓控制台,在Windows下就是开始——运行——cmd。也叫“命令行窗口”、“Console”、“Terminal”都是同一个东西。

这个黑漆漆的东西有什么好玩的呢?看看下面这个游戏:

(这游戏还可以,我就只打穿了两遍而已。)

和Flash原版魔塔基本一样:

在控制台里,我们可以通过彩色的文字、背景、空格,来表现出比较抽象的场景。掌握了这个方法,我们就可以尽情发挥想象,做出各种各样的游戏了。而且麻雀虽小五脏俱全,制作控制台游戏有助于我们对游戏整个流程有完整的掌控,自己设计逻辑、渲染循环,让我们对真正引擎的理解能更上一层楼。

虽然画面过于简单是个缺点,但是胜在制作也很简单,最重要的是,在学习阶段让我们能迅速开发自己的小游戏~~

三、控制台游戏鉴赏

其实知乎上有一些非常厉害的控制台游戏的例子,但是那些作品主要是用到了一些字符渲染技术,将复杂图形转化为字符表示……其实复杂的东西都有一个简单的内核,如果咱们把基本的控制台操作搞定了,就离大佬们近了一大步。毕竟游戏是用来玩的,不是用来膜拜的。

所以这里我们展示一些皮皮关学员作品,供大家学习参考。

1、魔塔

(有点闪烁是因为录屏软件正好录到了屏幕刷新的时刻,游戏本身闪烁并不明显)

本游戏采用了把关卡地图放在txt文本里的方法,而且后期有跳关、查看怪物等功能,麻雀虽小,五脏俱全。最难能可贵的是工程代码比较平铺直叙,萌新也可以看懂。

2、回合制战斗模拟器

这个作品在技能动画上的处理非常厉害,箭头移动比较流畅(动图看不出来。这是用一边擦除、一边画箭头的方法实现的)

3、雾之迷宫

开脑洞,实现带有迷雾的地图。

4、战棋游戏Demo(火焰纹章)

这个Demo不完整,只是展示了《火焰纹章》游戏中的移动、攻击等细节。彩色背景的效果棒极了,文字一个一个冒出来的感觉也很帅。

5、扫雷、俄罗斯方块、2048、贪食蛇等等

一些经典的小游戏都可以在控制台上实现,我就不再贴图了,有兴趣可以在文末的地址中下载。

四、用C++ / C编程控制台游戏

C++操作控制台方案很多,比如利用system(“color 03”); 但是用起来有一些问题。

如图:直接只用DOS命令color即可改变文字和背景颜色。

相对好一些的方案是使用Windows提供的SetConsoleTextAttribute等函数来实现设置颜色。但是Windows提供的清屏我没有找到靠谱的方法,只能暂时用system(“cls”)来做,效果还可以,以下代码提供了清屏和打印彩色字符两个函数供参考:

由于C和C++在不同平台、不同系统下套路不太一样。网上有些方法无法直接应用,主要是因为VisualStudio版本以及WinSDK版本不同造成的。建议试验确定一种方案,然后以该方案为准即可。

五、游戏主循环

其实,有了打印字符和清空屏幕这两个工具,就已经可以制作各种各样的控制台游戏了,简单说下思路:


所有文章中提到的游戏,我都开放了源码下载。而这些工程万变不离其宗,都用到了以上基本的游戏逻辑循环,只要看懂了一个项目,其它都迎刃而解了。建议从《魔塔》项目开始学习,比较符合新手的理解力。

C/C++代码实现各种控制台游戏,大神请收下我的膝盖!相关推荐

  1. 怎么改造计算机玩游戏,大神请收下我的膝盖 牛人将红白机改造成PC玩游戏

    如果你曾经拥有一台红白机,那么它现在是早就被当做废品卖掉,还是被丢在地下室不知道在哪个角落落灰呢?作为曾经最叱咤风云的游戏主机之一,大多数人对于红白机的印象只停留在回忆之中,一位名叫Ungreedy的 ...

  2. 76 张图,剖析 Spring AOP 源码,小白居然也能看懂,大神,请收下我的膝盖!

    下面我会简单介绍一下 AOP 的基础知识,以及使用方法,然后直接对源码进行拆解. 不 BB,上文章目录. 1. 基础知识 1.1 什么是 AOP ? AOP 的全称是 "Aspect Ori ...

  3. 这些代码神注释,请收下我的膝盖

    来源:https://github.com/Blankj/awesome-comment 文中字符均可以直接复制直接用: /*** * 瓦瓦 十 * 十齱龠己 亅瓦車己 * 乙龍龠毋日丶 丶乙己毋毋丶 ...

  4. c++编写手机小游戏代码_经典小游戏大集合(C++ 源码)

    [实例简介] 五子棋 贪吃蛇 俄罗斯方块 黑白棋 连连看 推箱子 扫雷等7个小游戏 C++源码 VC6.0 下编译运行. [实例截图] [核心代码] 经典小游戏大集合(C源码) └── 经典小游戏大集 ...

  5. 游戏百科选择题小测试,就算你是游戏大神也不一定全做对

    各位狂热的游戏粉们,想必你们在游戏界畅游多年,一定对各种类型的游戏都有所了解吧!那么,一个简单的小测验来啦,它考验的是你对各种游戏的冷门知识储备,不知道你能答对多少题呢?正确答案会附在文章的最后,你可 ...

  6. 游戏蓝牙耳机怎么选?游戏大神推荐四款好用的游戏蓝牙耳机

    现如今,喜欢戴蓝牙耳机玩游戏的人越来越多,伴随着游戏蓝牙耳机市场越来越充盈,人们在选择蓝牙耳机时不免陷入纠结,一时不知道该选哪款.游戏蓝牙耳机怎么选?首先我们需要看蓝牙耳机的延迟是多少,延迟越低,说明 ...

  7. 服务器主机GHOST装系统,大神请绕道!科普电脑装系统最基本的两种方式,萌新千万不要错过...

    原标题:大神请绕道!科普电脑装系统最基本的两种方式,萌新千万不要错过 Hello大家好,我是兼容机之家的小牛! 电脑装系统用GHOST好,还是原装版本好?这是很多小伙伴疑惑的问题,那么让我们来具体分析 ...

  8. 大神的自动练法师技能,想单独提取,练火星球到 75熟练度,,求大神帮忙提取下。

    大神的自动练法师技能,想单独提取,练火星球到 75熟练度,,求大神帮忙提取下. 2014-04-26 00:50:02| 分类: assa 脚本范文列 |字号 订阅 下载LOFTER我的照片书 | d ...

  9. java 控制台刷屏 dll_Java刷屏问题,下面是我编的代码,请大神帮忙解决下,谢谢...

    importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicclassjiemianextendsJFrame{JButtonz ...

最新文章

  1. Unity NGUI ScrollView 苹果式滑动
  2. [转]VC获取各类指针
  3. asp.net 学习的一些地址
  4. Tomcat(1)介绍、jdk安装、安装Tomcat ​ 配置Tomcat监听80端口
  5. 联想正遭遇第四道坎 柳传志对症下药
  6. 寒假每日一题(入门组)【week7 完结】
  7. 鸿蒙os2.0系统什么时候,鸿蒙OS 2.0beta什么时候发布 鸿蒙OS2.0功能介绍
  8. 软件测试面试的基础题目
  9. c# msi中加入驱动_MongoDB的C#驱动基本使用
  10. Coolite之数据源(store)分页,基于Sql2000存储过程(高效分页)
  11. scrapy框架持久化存储
  12. 傅里叶变换落地:离散傅里叶变换(DFT)
  13. setupfactory安装程序设置开机自启动
  14. 深入理解ext4文件系统
  15. html顺序播放mp3,完美:按顺序播放mp3的方法是什么?如何更改U盘中歌曲的播放顺序...
  16. 学习继电器的工作原理及作用
  17. Blender学习入门(二)-通用模型技术总结
  18. linux中mtd是什么目录,Linux mtd system
  19. 苹果手机投影_智能手机投屏到投影仪
  20. 体验最近火爆的ChatGPT,真的被震惊到了

热门文章

  1. nrf52832概述
  2. 为什么软考高项考了很多次还没通过?
  3. Mac中卸载根除paragon ntfs for mac软件【Mac手动卸载软件和插件】
  4. 组合体视图的画图步骤_画组合体视图的方法和步骤
  5. 免费邮件服务器软件 linux,Linux 快速搭建免费邮件服务器(docker)
  6. C语言和Python哪个好?学哪个语言?
  7. 罗技F710手柄使用教程-ROS
  8. 创业规划 - 我的闪存
  9. Linux 命令行查看服务器ip地址
  10. css背景颜色占全部屏幕,css怎样让背景充满整个屏幕