会员
周边
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
今天不摆烂
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
7
下一页
2026年3月24日
ECS框架-引入哈希字符串-重构资源管理器
摘要: 引入哈希字符串 由于代码中存在大量的名字比如:UI的状态名normal/hover/pressed,音乐、音效ui_hover/battle_bgm,纹理/声音路径assets/textures/...、assets/audio/...等等,这些使用的都是std::string()来存、比较、查找,
阅读全文
posted @ 2026-03-24 19:12 wenyiGamecpp
阅读(50)
评论(0)
推荐(0)
2026年3月23日
ECS框架-捕获与中断信号传递
摘要: 捕获与中断信号传递 现在我们首先要解决上一节的问题,就是防止信号的穿透。 当我们压入多个场景的时候,每个场景在init()都订阅了同一个动作;那么当你再次触发这个动作的时候,所有场景的回调都会触发(因为它们都连接在同一个信号上)。 我们希望输入信号只被当前场景处理,或者允许某个回调"捕获并中断"后续
阅读全文
posted @ 2026-03-23 20:42 wenyiGamecpp
阅读(44)
评论(0)
推荐(0)
2026年3月21日
ECS框架-事件总线和场景去耦
摘要: 事件总线与场景切换 前面我们已经将输入模块InputManager做成了信号驱动,将对应的抽象动作的状态(pressed、hold、released)做成信号,在场景GameScene中注册响应的回调函数,输入模块在update的时候触发回调。 这节我们将完成事件总线dispatcher以及将场景S
阅读全文
posted @ 2026-03-21 10:47 wenyiGamecpp
阅读(80)
评论(0)
推荐(0)
2026年3月18日
ECS框架-输入管理信号系统
摘要: 概述 之前游戏我们调用handleInput,这使得程序形成了每帧都会走一遍的轮询模式,这种方式不是我们想要的。现在我们可以修改我们的InputManager,把输入模块升级为“信号驱动”,由于我们的输入是抽象动作和按键的映射,所以对于某个动作,可以有四种状态(PRESSED、HOLD、RELEAS
阅读全文
posted @ 2026-03-18 20:52 wenyiGamecpp
阅读(64)
评论(0)
推荐(1)
ECS框架-EnTT信号系统
摘要: EnTT信号系统 问题是如何产生的?我打死了一个敌人,可能会牵扯到很多东西,比如需要播放敌人的死亡动画,需要播放音效,需要更新得分,需要掉落道具,那么这么多事件难道都写在敌人击杀的那块代码中吗?这将会形成一个高度耦合的函数,这不是一种好的处理方法。 这里我们学习EnTT的信号/事件机制,用"发布事件
阅读全文
posted @ 2026-03-18 19:25 wenyiGamecpp
阅读(266)
评论(0)
推荐(1)
2026年3月16日
新的挑战ECS框架-开篇-EnTT基础
摘要: EnTT基础 目标: 了解三件套:entt::registry / entt::entity / component 学会用entt::view遍历"符合组件条件"的实体集合 了解entt::hashed_string(哈希字符串)的用途与常见问题 简单了解registry.ctx()是什么 设计思
阅读全文
posted @ 2026-03-16 21:32 wenyiGamecpp
阅读(439)
评论(0)
推荐(0)
2026年3月15日
不同场景下的函数传参方式推荐
摘要: 不同场景下的函数传参方式推荐 需要存储/赋值(setter,构造函数),推荐使用 按值传递 + std::move;代码最简洁,自动优化左值和右值,几乎无性能损失,是现代C++惯用手法 #include <string> class Person { private: std::string m_n
阅读全文
posted @ 2026-03-15 20:38 wenyiGamecpp
阅读(18)
评论(0)
推荐(0)
C++游戏开发之旅 33 & 结束
摘要: 最后一章了,需要完成失败和胜利的场景,也就是结束场景 结束场景 如果玩家胜利了,显示YOU WIN!,失败了则显示YOU DIED!;显示得分信息,历史最高分,提供操作选项,重新开始或是返回主菜单。 第一部分:EndScene 实现 该场景需要根据游戏结果,向玩家显示不同的信息,并提供"重新开始"或
阅读全文
posted @ 2026-03-15 10:43 wenyiGamecpp
阅读(40)
评论(0)
推荐(0)
2026年3月14日
C++游戏开发之旅 32
摘要: 问题概述 需要完成游戏暂停功能 因为之前的暂停效果是在游戏场景上加一个菜单场景,这样场景管理器会只更新栈顶的场景,所以看上去游戏世界就好像停止了 这章节引入了一个新的概念:全局游戏状态(Game State) 核心思想: 引入GameState管理游戏状态 集成到Context全局访问 条件式更新物
阅读全文
posted @ 2026-03-14 20:21 wenyiGamecpp
阅读(33)
评论(0)
推荐(0)
C++游戏开发之旅 31
摘要: 问题概述 这节完成标题场景,也就是主菜单(Title Scene) 我们的游戏应该首先进入主菜单,然后有四个按钮,开始新游戏,加载游戏,帮助,退出。 第一部分:调整游戏入口 首先,我们的GameApp从TitleScene启动。 我们需要调整GameApp中的初始化创建。 // ... #inclu
阅读全文
posted @ 2026-03-14 13:26 wenyiGamecpp
阅读(22)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
7
下一页
公告