摘要: 问题概述 接下来我们要完成按钮功能,可以响应用户的输入。 解决方案:状态模式与交互式UI 使用状态模式管理UI交互 创建UIInteractive基类 实现UI状态机 构建可复用的UIButton 第一部分:状态模式 按钮的行为: Normal(正常) 鼠标不悬停的时候,显示默认图片 Hover(悬 阅读全文
posted @ 2026-03-13 19:17 wenyiGamecpp 阅读(18) 评论(0) 推荐(0)
摘要: 问题概述 这章完成游戏UI的绘制,绘制生命UI和得分UI。 完成的任务: 创建UIImage控件显示图标 创建UILabel控件显示文本 组合控件构建生命值显示 实现数据绑定动态更新 第一部分:UI控件扩展 上一章完成了UIPanel,这节完成最常用的两个控件UIImage和UILabel。 1.U 阅读全文
posted @ 2026-03-12 21:00 wenyiGamecpp 阅读(16) 评论(0) 推荐(0)
摘要: 反转字符串中的单词 (leetcode.151) 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意:输入字符串 s中可能会存在前导空格、尾 阅读全文
posted @ 2026-03-12 12:58 wenyiGamecpp 阅读(18) 评论(0) 推荐(0)
摘要: 问题概述 这节实现UI管理器与UI元素,上一节我们实现了文本绘制函数,但是我们不可能在GameScene的render函数中调用大量的函数进行UI绘制,这没有框架,且难以维护和复用,而且有一个输入混乱的问题,就是输入会穿透,导致体验很差。 解决方案 我们会采用一个类似自组合+继承的方式来实现对UI的 阅读全文
posted @ 2026-03-10 16:44 wenyiGamecpp 阅读(52) 评论(0) 推荐(0)
摘要: 问题概述 实现添加文字的功能。 需要搭建一个文字渲染引擎 文字渲染引擎 核心思想: 用SDL_ttf 库渲染文字 创建通用的TextRenderer类 区分UI文本和世界文本 集成到引擎核心 文字渲染系统架构: ┌──────────────────┐ │ SDL_ttf │ ← 底层库 │ TTF 阅读全文
posted @ 2026-03-09 16:27 wenyiGamecpp 阅读(44) 评论(0) 推荐(0)
摘要: 字符串 反转字符串 (leetcode.344) 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 class Solution { public: void reverseString(vector<char>& s) { int n = s.size(); i 阅读全文
posted @ 2026-03-08 16:18 wenyiGamecpp 阅读(16) 评论(0) 推荐(0)
摘要: 问题概述 实现存档的功能,目前游戏,玩家进入新的关卡后状态清零,比如血量回满了。 实现目标,当玩家在第一关扣血了,进入第二关依然是第一关结尾时候的血量状态 解决方案:共享数据 核心思想: 创建独立的 SessionData 类存储游戏状态 使用 shared_ptr 在场景间共享数据 数据生命周期独 阅读全文
posted @ 2026-03-07 21:35 wenyiGamecpp 阅读(42) 评论(0) 推荐(0)
摘要: 哈希表 赎金信(leetcode.383) 给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以,返回 true ;否则返回 false 。 并不困难,因为字母都是小写的,那么可以定义一个hash[26]作为 阅读全文
posted @ 2026-03-07 17:33 wenyiGamecpp 阅读(12) 评论(0) 推荐(0)
摘要: 问题概述 目前只有一个场景,本章实现一个新的场景载入。 解决方案 在Tiled中设置关卡触发器(传送门) 扩展LevelLoader支持自定义形状 GameScene支持加载不同地图 实现场景切换逻辑 1.在Tiled中创建关卡出口 Tiled的对象层不仅可以放置基于图块的对象,还可以绘制自定义形状 阅读全文
posted @ 2026-03-06 21:29 wenyiGamecpp 阅读(52) 评论(0) 推荐(0)
摘要: 哈希表 快乐数(leetcode.202) 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。 如果这个过程 结果为 1,那么这个数就是快乐数。 阅读全文
posted @ 2026-03-06 18:55 wenyiGamecpp 阅读(20) 评论(0) 推荐(0)