摘要: 问题概述 上一节,我们实现了生命组件以及受伤死亡的状态添加,但是目前的玩家只能被动挨打,无法和其他游戏对象进行交互。 解决方案:完整的交互系统 玩家攻击敌人 > 踩踏判断:玩家中心点高于敌人中心点,最小平移向量判断:overlap.x > overlap.y 创建特效 > 创建一个指定精灵、动画的游 阅读全文
posted @ 2026-03-01 21:04 wenyiGamecpp 阅读(43) 评论(0) 推荐(0)
摘要: 有序数组的平方 有一个升序的整数数组nums(其中可包含负数),返回每个数字的平方组成的新数组,要求也按升序排序。 输入:nums = [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组变为 [16,1,0,9,100],排序后,数组变为 [0,1,9,16,100 阅读全文
posted @ 2026-03-01 11:40 wenyiGamecpp 阅读(9) 评论(0) 推荐(0)
摘要: 问题概述 现在我们已经实现了动画系统,是时候给游戏角色添加生命组件了 我们依旧是延续之前数据驱动的模式,为特定的游戏对象添加生命系统 核心思想 创建通用HealthComponent组件 在 Tiled 中定义初始生命值 添加受伤(Hurt)和死亡(Dead)状态 实现无敌帧机制 本章我们需要完成的 阅读全文
posted @ 2026-02-28 20:20 wenyiGamecpp 阅读(43) 评论(0) 推荐(0)
摘要: 问题概述 我们现在已经实现了玩家的状态机系统,玩家可以在不同的状态之间切换,但是目前玩家看起来还是静态的,显示的都是同一张图片。 这章我们将实现动画系统。 数据驱动的动画系统 核心思想: 在 Tiled 编辑器中定义动画数据(JSON格式) 创建通用的动画播放组件 将状态机与动画系统联动 章节目标 阅读全文
posted @ 2026-02-27 21:23 wenyiGamecpp 阅读(32) 评论(0) 推荐(0)
摘要: 问题概述 目前我们所有的玩家相关输入控制都是写在GameScene::TestPlayer()函数中,这种写法随着功能的增加,会变得越来越难以维护。 void GameScene::testPlayer() { if(!player_) return; auto input = context_.g 阅读全文
posted @ 2026-02-26 20:51 wenyiGamecpp 阅读(39) 评论(0) 推荐(0)
摘要: 问题概述 现在我们的物理世界中已经有了地面和障碍物,但是平台跳跃游戏还有更丰富的平台比如斜坡(Slope)、单向平台(One-Way Platforms)。 同时,为了游戏体验,我们还需要设置游戏的世界边界防止玩家掉出地图,平滑跟随玩家的相机,让视口屏幕上更自然。 本章实现: 单向平台 可从下方跳上 阅读全文
posted @ 2026-02-24 23:02 wenyiGamecpp 阅读(49) 评论(0) 推荐(0)
摘要: 问题概述 前面我们实现了动态物体与静态瓦片地图的碰撞。然而,游戏中还有其他各种独立的对象——敌人、移动平台、可推动的箱子等。本章节,我们将实现这些对象之间的碰撞解析,重点关注动态物体与被标记为 "实体"(Solid) 的静态对象(如木箱障碍物)之间的交互。 现在游戏中的情况是我们的箱子是会穿过我们的 阅读全文
posted @ 2026-02-22 22:40 wenyiGamecpp 阅读(80) 评论(0) 推荐(0)
摘要: 问题概述: 我们现在已经完成了让物理引擎可以检测到物体间的重叠,现在,是时候让这些碰撞产生实际效果了,这章我们将实现碰撞解析(Collision Resolution),首先解决最核心的需求:让动态游戏对象能够与静态的瓦片地图层(如地面、墙壁)发生真实的物理交互,而不是直接穿过。 章节目标: 定义实 阅读全文
posted @ 2026-02-19 20:42 wenyiGamecpp 阅读(53) 评论(0) 推荐(0)
摘要: 问题概述 上一章节中,我们完成了物理引擎和物理组件的构建,但是我们的物体似乎直接从地面上掉下去了,我们希望的物体应该停在地面上的,不应该穿过去,这章我们会完成如何教会引擎进行 碰撞检测。 这节我们的目标:判断 哪两个物体在当前帧发生了重叠 我们将创建一系列的组件和类实现这个目标: 模块 职责 Col 阅读全文
posted @ 2026-02-18 21:31 wenyiGamecpp 阅读(47) 评论(0) 推荐(0)
摘要: 问题概述 截止到目前,我们完成了将游戏对象加载到场景中的功能,但是对象都是静止的。这章我们将完成使对象像现实中一样,可以动起来,角色玩家可以跳跃,物体可以下落,我们将引入物理的概念。 静态世界 vs 动态世界 静态世界 动态世界 对象静止不动 对象受到重力影响下落 无法模拟跳跃 角色可以跳跃、移动 阅读全文
posted @ 2026-02-15 10:20 wenyiGamecpp 阅读(51) 评论(0) 推荐(0)