摘要: 问题概述: 上一章,我们实现了将Tiled中的背景图层渲染到了屏幕上,为关卡铺设了远景。现在,我们要开始构建玩家能够站立、行走、跳跃的实体世界。这章我们继续深入LevelLoader,实现对瓦片层(Tiled Layer)的解析和加载。瓦片层是Tiled地图的核心,是由一个网格单元组成的二维数组,每 阅读全文
posted @ 2026-02-11 12:12 wenyiGamecpp 阅读(3) 评论(0) 推荐(0)
摘要: 问题概述 现在我们的引擎结构已经是比较完整的了,但是我们现在创建的游戏对象(房子)是通过在代码中“硬编码”创建的。 void GameScene::createTestObject(){ auto obj = std::make_unique<GameObject>("house"); obj->a 阅读全文
posted @ 2026-02-08 17:32 wenyiGamecpp 阅读(2) 评论(0) 推荐(0)
摘要: 问题概述 到目前为止,我们所有的测试都是直接写在GameApp中,这虽然很方便,但是随着项目的扩大,GameApp会变得很臃肿。 我们知道一个游戏包含多个状态: |—— 主菜单 |—— 游戏关卡 ​ |—— 第一关 ​ |—— 第二关 ​ |—— ... |—— 暂停界面 |—— 设置界面 |—— 阅读全文
posted @ 2026-02-04 21:40 wenyiGamecpp 阅读(5) 评论(0) 推荐(0)
摘要: 问题背景: 上一节中,我们构建了关键的两个类GameObject 和 Component;为我们的引擎奠定了面向组件编程的基石。GameObject本身是没有什么东西的,里面存放了存储“积木”(组件)的容器,而Component基类也未实现任何的功能。所以,接下来我们将创建两个 最核心的组件,赋予游 阅读全文
posted @ 2026-01-31 21:51 wenyiGamecpp 阅读(12) 评论(0) 推荐(0)
摘要: 如何优雅的在visual studio2022 做练习 问题概述 想学习一些C++的基础语法以及数据结构和算法,该如何使用visual studio创建项目呢?一个解决方案如何包含多个项目?build输出的文件杂乱找不到想要的文件?这是遇到的一些问题,这节课需要解决这些问题。 创建一个项目 这里创建 阅读全文
posted @ 2026-01-29 20:18 wenyiGamecpp 阅读(18) 评论(0) 推荐(0)
摘要: 问题概要 经过前面的学习,我们已经将引擎的底层基础设施搭建完毕。完成了游戏主框架的设计game_app;Time类实现帧率控制;资源管理模块ResourceManager类作为大哥,手下三个小弟TextureManager、AduioManager 、FontManager分别管理各自的资源;渲染器 阅读全文
posted @ 2026-01-28 21:16 wenyiGamecpp 阅读(5) 评论(0) 推荐(0)
摘要: 问题背景 现在我们已经可以渲染出画面了,截止目前,我们有Config类用于灵活的设置游戏参数解决硬编码带来的不便性,Time类控制游戏的帧率,ResourceManager资源管理类作为中转,让其中三个小弟TextureManager、AudioManager、FontManager分别管理资源,C 阅读全文
posted @ 2026-01-26 20:18 wenyiGamecpp 阅读(4) 评论(0) 推荐(0)
摘要: 问题背景: 随着引擎功能的完善,问题也凸显出来了:目前我们的许多核心参数,比如窗口大小、标题、目标帧率等,都是直接写在代码里的,这种硬编码的方式极大的限制了灵活性,我们想要修改某些参数都要修改代码然后重新编译。 为了解决这个问题,我们需要设计一个配置管理系统。创建一个Config类,负责从外部的co 阅读全文
posted @ 2026-01-25 10:36 wenyiGamecpp 阅读(3) 评论(0) 推荐(0)
摘要: 哪块不会学哪块!!! 76.c++如何处理optional数据(std::optional) 1.C++17在STL中引入了std::optional,就像std::variant一样,std::optional是一个“和类型(sum type)”,也就是说,std::optional类型的变量要么 阅读全文
posted @ 2026-01-25 10:28 wenyiGamecpp 阅读(12) 评论(0) 推荐(0)
摘要: 概述 之前完成了主循环、帧率控制以及资源管理模块,现在我们需要完成渲染工作,将游戏对象绘制到屏幕上。 这章需要理解 精灵(Sprite)-描述“画什么”,使用哪张纹理、纹理的哪一部分 相机(Camera)-玩家视窗,决定显示,负责坐标和视图转换 渲染器(Renderer)-封装底层绘制API,接收精 阅读全文
posted @ 2026-01-21 10:29 wenyiGamecpp 阅读(10) 评论(0) 推荐(0)