文章总结: 这篇文章介绍了《零基础开发C++游戏》专栏,该专栏面向初学者,从C++基础知识开始,逐步教授如何开发四个流行小游戏,包括《木材》《乒乓》《僵尸竞技场》和平台游戏。专栏共21章,涵盖变量、运算符、面向对象编程、碰撞检测、音效、纹理管理等游戏开发核心技术。文章还介绍了小方说服务器开发知识星球平台提供的其他服务和技术专栏,并提供了新会员和老会员的优惠加入方式。
综合评分: 65
文章分类: 产品介绍,软文广告
零基础开发C++游戏 专栏上线
CppGuide
2025年4月3日 14:06
上海
搞了一个《零基础开发C++游戏》的专栏放在小方说服务器知识星球,以飨球友。
真的是零基础,因为阅读者不需要任何C++基础,会从基本的C++开发环境介绍到C++类语法、STL容器,在熟悉这些知识后开始从零写四个流行的小游戏。
技多不压身,有兴趣的小伙伴可以拉到文章底部成为球友阅读。
以下是详细目录:
目录
-
第1章:欢迎阅读
-
配置错误
-
编译错误
-
链接错误
-
程序bug
-
使用纹理准备精灵
-
对背景精灵进行双缓冲处理
-
运行游戏
-
while循环
-
C风格的代码注释
-
输入、更新、绘制、重复
-
检测按键
-
清除并绘制场景
-
运行游戏
-
引入SFML的功能
-
面向对象编程、类和对象
-
使用命名空间sf
-
SFML的VideoMode和RenderWindow
-
运行游戏
-
用注释让代码更清晰
-
主函数
-
代码呈现与语法
-
从函数返回值
-
运行游戏
-
制作自己的音效
-
将资源添加到项目中
-
探索资源
-
配置项目属性
-
SFML库
-
微软Visual Studio
-
Mac和Linux系统呢?
-
安装Visual Studio 2022
-
《木材!!!》
-
《乒乓》
-
《僵尸竞技场》
-
平台游戏
-
我们将制作的游戏
-
为何在2024年应使用C++学习游戏编程
-
设置SFML
-
在Visual Studio 2022中创建新项目
-
规划Timber!!!
-
项目资源
-
理解屏幕坐标和内部坐标
-
开始编写游戏代码
-
使用SFML打开窗口
-
游戏循环
-
绘制游戏背景
-
处理错误
-
总结
-
常见问题解答
-
第2章:变量、运算符和判断:为精灵制作动画
-
让蜜蜂动起来
-
飘动的云朵
-
帧率问题
-
SFML的帧率解决方案
-
逻辑运算符
-
C++中的
if和else -
如果他们过桥,就射击!
-
否则执行其他操作
-
读者挑战
-
在C++中生成随机数
-
准备树
-
准备蜜蜂
-
准备云朵
-
绘制树、蜜蜂和云朵
-
C++算术运算符和赋值运算符
-
用表达式实现功能
-
赋值
-
自增和自减
-
声明变量
-
初始化变量
-
一步完成声明和初始化
-
常量
-
统一初始化
-
声明和初始化用户定义类型
-
变量类型
-
用户定义类型
-
全面学习C++变量
-
声明和初始化变量
-
操作变量
-
添加云朵、嗡嗡叫的蜜蜂和一棵树
-
随机数
-
使用if和else进行判断
-
计时
-
移动云朵和蜜蜂
-
总结
-
常见问题
-
第3章:C++字符串、SFML时间:玩家输入与平视显示器
-
声明字符串
-
给字符串赋值
-
字符串拼接
-
获取字符串长度
-
用StringStream以另一种方式操作字符串
-
SFML文本和字体
-
暂停和重新开始游戏
-
C++字符串
-
添加分数和消息
-
添加时间条
-
总结
-
常见问题
-
第4章:循环、数组、switch语句、枚举和函数:实现游戏机制
-
准备树枝
-
每一帧更新树枝精灵
-
绘制树枝
-
移动树枝
-
谁设计了这些奇怪又让人抓狂的语法?为什么是这样的?
-
函数返回类型
-
函数名
-
函数参数
-
函数体
-
函数原型
-
组织函数
-
函数作用域
-
关于函数的最后一点说明(目前为止)
-
声明数组
-
初始化数组元素
-
这些数组对我们的游戏有什么实际作用?
-
快速初始化数组元素
-
while循环 -
跳出循环
-
for循环 -
循环
-
数组
-
用switch语句进行判断
-
枚举
-
函数入门
-
生成树枝
-
总结
-
常见问题
-
第5章:碰撞、声音和结束条件:让游戏可玩
-
SFML音效的工作原理
-
何时播放音效
-
添加音效代码
-
处理新游戏设置
-
检测玩家砍伐动作
-
检测按键释放
-
为砍伐的原木和斧头制作动画
-
准备玩家(和其他精灵)
-
绘制玩家和其他精灵
-
处理玩家输入
-
处理死亡情况
-
简单音效
-
改进游戏和代码
-
总结
-
常见问题
-
第6章:面向对象编程 – 开始制作乒乓球游戏
-
编写
Bat.h -
构造函数
-
继续解释
Bat.h -
编写
Bat.cpp -
声明类、变量和函数
-
类函数定义
-
使用类的实例
-
封装
-
多态
-
继承
-
为什么使用面向对象编程?
-
类究竟是什么?
-
面向对象编程
-
乒乓球拍的理论
-
创建乒乓球项目
-
编写
Bat类 -
使用
Bat类并编写主函数 -
总结
-
常见问题
-
第7章:轴对齐包围盒碰撞检测和物理 – 完成《乒乓》游戏
-
编写
Ball类 -
使用
Ball类 -
碰撞检测和计分
-
运行游戏
-
学习C++的箭头运算符
-
总结
-
常见问题解答
-
第8章:SFML视图 – 开始制作《僵尸射击》游戏
-
编写Player类头文件
-
编写Player类函数定义
-
创建新项目
-
项目资源
-
探索资源
-
将资源添加到项目中
-
规划并开始制作《僵尸竞技场》游戏
-
面向对象编程与《僵尸竞技场》项目
-
构建层级 – 第一个类
-
用SFML视图控制游戏相机
-
启动《僵尸竞技场》游戏引擎
-
管理代码文件
-
开始编写主游戏循环
-
总结
-
常见问题解答
-
第9章:C++引用、精灵表和顶点数组
-
用图块构建背景
-
构建顶点数组
-
使用顶点数组进行绘制
-
什么是精灵表?
-
总结引用
-
理解C++引用
-
SFML顶点数组和精灵表
-
什么是顶点数组?
-
创建随机生成的滚动背景
-
使用背景
-
总结
-
常见问题解答
-
第10章:指针、标准模板库和纹理管理
-
什么是vector?
-
什么是map?
-
声明vector
-
向vector添加数据
-
访问vector中的数据
-
从vector中删除数据
-
检查vector的大小
-
遍历vector的元素
-
声明map
-
向map添加数据
-
在map中查找数据
-
从map中删除数据
-
检查map的大小
-
检查map中是否存在键
-
遍历map的键值对
-
指针语法
-
声明指针
-
初始化指针
-
重新初始化指针
-
解引用指针
-
指针用途广泛且功能强大
-
指针和数组
-
指针总结
-
动态分配内存
-
将指针传递给函数
-
声明并使用指向对象的指针
-
学习指针
-
学习标准模板库
-
auto关键字 -
标准模板库总结
-
总结
-
常见问题解答
-
第11章:编写
TextureHolder类并创建一群僵尸 -
更改背景获取纹理的方式
-
更改
Player类获取纹理的方式 -
编写
Zombie.h文件 -
编写
Zombie.cpp文件 -
使用
Zombie类创建一群僵尸 -
让这群僵尸“活起来”
-
编写
TextureHolder头文件 -
编写
TextureHolder函数定义 -
我们通过
TextureHolder类实现了什么? -
实现
TextureHolder类 -
创建一群僵尸
-
为所有纹理使用
TextureHolder类 -
总结
-
常见问题解答
-
第12章:碰撞检测、拾取物和子弹
-
僵尸被击中了吗?
-
玩家被僵尸碰到了吗?
-
玩家碰到拾取物了吗?
-
编写拾取物头文件
-
编写拾取物类函数定义
-
包含
Bullet类 -
控制变量和子弹数组
-
重新装填枪支
-
发射子弹
-
在每一帧更新子弹
-
在每一帧绘制子弹
-
给玩家添加准星
-
编写
Bullet头文件 -
编写
Bullet源文件 -
编写
shoot函数 -
更多子弹函数
-
Bullet类的update函数 -
在
shoot函数中计算斜率 -
在
shoot函数中使斜率为正 -
在
shoot函数中计算X和Y之间的比例 -
完成对
shoot函数的讲解 -
编写
Bullet类 -
让子弹飞起来
-
编写拾取物类
-
使用拾取物类
-
检测碰撞
-
总结
-
常见问题解答
-
第13章:分层视图和实现HUD
-
添加所有文本和HUD对象
-
更新HUD
-
绘制平视显示器(HUD)、主界面和升级界面
-
总结
-
第14章:音效、文件输入/输出和完成游戏
-
在玩家重新装填时添加音效
-
制作射击音效
-
在玩家被击中时播放音效
-
在玩家拾取物品时播放音效
-
在僵尸被击中时制作溅血音效
-
保存和加载高分
-
准备音效
-
允许玩家升级并生成新一波敌人
-
重新开始游戏
-
播放其余音效
-
总结
-
常见问题解答
-
第15章:运行!
-
为什么管理多种不同类型的对象很困难
-
使用通用
GameObject改善代码结构 -
优先使用组合而非继承
-
工厂模式
-
C++智能指针
-
转换智能指针
-
编写
GameObject类 -
编写
Component类 -
编写
Graphics类 -
编写
Update类 -
运行代码
-
接下来做什么?
-
shared_ptr
-
unique_ptr
-
继承
-
扩展类
-
多态
-
抽象类:虚函数和纯虚函数
-
关于这款游戏
-
创建项目
-
编写主函数
-
处理输入
-
编写
Factory类 -
高级面向对象编程:继承和多态
-
设计模式
-
实体组件系统模式
-
总结
-
第16章:音效、游戏逻辑、对象间通信和玩家
-
记住纹理坐标
-
编写
PlayerUpdate类 -
编写
PlayerGraphics类 -
编写
LevelUpdate类 -
编写
SoundEngine类 -
编写游戏逻辑
-
编写玩家相关内容:第一部分
-
编写
Animator类 -
运行游戏
-
总结
-
第17章:图形、相机、动作
-
编写
CameraUpdate类 -
编写
CameraGraphics类(第一部分) -
SFML的
View类 -
编写
CameraGraphics类(第二部分) -
相机、绘制所有内容和SFML视图
-
编写相机类
-
向游戏中添加相机实例
-
运行游戏
-
总结
-
第18章:编写平台、玩家动画和控制代码
-
编写玩家控制代码
-
编写
PlatformUpdate类 -
编写
PlatformGraphics类 -
在工厂中构建一些平台
-
编写
PlatformUpdate类的update函数 -
编写平台相关代码
-
运行游戏
-
为玩家添加功能
-
运行游戏
-
编写
Animator类 -
编写玩家动画
-
运行游戏
-
总结
-
第19章:构建菜单并实现下雨效果
-
编写
RainGraphics类 -
在工厂类中实现下雨效果
-
编写
MenuUpdate类 -
编写
MenuGraphics类 -
在工厂类中构建菜单
-
构建交互式菜单
-
运行游戏
-
实现下雨效果
-
运行游戏
-
总结
-
第20章:火球和空间化
-
编写
FireballUpdate类 -
编写
FireballGraphics类 -
在工厂中构建一些火球
-
编写
FireballGraphics.h文件 -
编写
FireballGraphics.cpp文件 -
发射器、衰减和收听者
-
什么是空间化?
-
使用SFML处理空间化
-
升级SoundEngine类
-
火球
-
运行游戏
-
总结
-
第21章:视差背景和着色器
-
拆分新的绘制代码
-
可编程管线和着色器
-
编写一个假设的片段着色器
-
编写一个假设的顶点着色器
-
学习 OpenGL、着色器和 GLSL
-
完成
CameraGraphics类的编写 -
为游戏编写着色器
-
运行完整的游戏
-
总结
-
进一步阅读
成为球友
小方说服务器开发知识星球近期新增如下专栏:
- 《用C++17从零开发一个调试器》
- 《Linux 5.x内核开发与调试 完全指南》
- 《使用C++20从零构建一个完整的低延迟交易系统》
- 《用C++零基础写4个流行小游戏》
星球目前一共 14 个技术专栏,即将上线的专栏:
- 《用C++从零写一个编译器》
- 《C++23快速指南》
小方说服务器开发为球友提供如下服务:
- 优问优答
- 不定期的技术直播和录像
- 优质源码分享和指导
- 职业解惑、简历review、模拟面试、求职辅导、大厂内推、副业交流等
- 十四大技术专栏
星球运营五载,好评如潮。
值此金三银四之际,星球原价 325/年,扫码加入立即优惠 40 元:
老球友扫码下面的二维码续费,在半价的基础上再优惠 20 元。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:CppGuide 《零基础开发C++游戏 专栏上线》