<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mengzh的博客]]></title><description><![CDATA[欢迎来到我的知识城堡]]></description><link>https://blog.youkuaiyun.com/mzh1213</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mzh1213]]></copyright><item><title><![CDATA[游戏开发常用架构 #MVP,MVC]]></title><link>https://blog.youkuaiyun.com/mzh1213/article/details/163050878</link><guid>https://blog.youkuaiyun.com/mzh1213/article/details/163050878</guid><author>mzh1213</author><pubDate>Tue, 21 Jul 2026 10:04:05 +0800</pubDate><description><![CDATA[本文以餐厅类比介绍了MVC和MVP两种架构模式。MVC中，View可直接访问Model导致耦合度高；MVP通过Presenter解耦，View只能通过Presenter与Model交互，降低了耦合度。两种架构的核心区别在于View层的设计：MVC中View直接读取Model，而MVP中View完全通过Presenter更新，使系统更易维护。随着系统复杂度增加，MVP的解耦优势更明显。]]></description><category></category></item><item><title><![CDATA[C#异步编程]]></title><link>https://blog.youkuaiyun.com/mzh1213/article/details/161892184</link><guid>https://blog.youkuaiyun.com/mzh1213/article/details/161892184</guid><author>mzh1213</author><pubDate>Thu, 11 Jun 2026 15:19:41 +0800</pubDate><description><![CDATA[本文分享了异步编程的核心概念与C#实现要点：1) async/await机制通过非阻塞等待实现并发；2) Task作为异步操作容器，封装结果、状态和异常；3) WhenAll/WhenAny实现多任务协同；4) CancellationToken提供取消机制，需主动检查中断信号；5) 特别介绍了Unity优化的UniTask方案。文章采用代码示例对比同步/异步差异，并解析了Task和取消令牌的内部结构，强调异步编程通过"立即返回+延迟处理"提升系统吞吐量，适用于I/O密集型场景。]]></description><category></category></item><item><title><![CDATA[Unity性能优化之合批，什么是合批？]]></title><link>https://blog.youkuaiyun.com/mzh1213/article/details/160925835</link><guid>https://blog.youkuaiyun.com/mzh1213/article/details/160925835</guid><author>mzh1213</author><pubDate>Sat, 09 May 2026 15:31:04 +0800</pubDate><description><![CDATA[合批是通过合并多次绘制请求来减少CPU向GPU提交命令次数的优化技术，分为静态合批和动态合批。静态合批适用于静态物体，在构建时合并网格数据，降低运行时开销但增加内存占用；动态合批针对小型动态物体，由CPU实时处理顶点数据后统一提交，能减少Draw Call但增加CPU负担。优化的核心在于平衡CPU提交成本与内存/计算开销，需根据场景实际需求选择合适的合批方式，避免盲目优化导致性能下降。]]></description><category></category></item><item><title><![CDATA[我的创作纪念日]]></title><link>https://blog.youkuaiyun.com/mzh1213/article/details/155616319</link><guid>https://blog.youkuaiyun.com/mzh1213/article/details/155616319</guid><author>mzh1213</author><pubDate>Fri, 05 Dec 2025 20:00:13 +0800</pubDate><description><![CDATA[我的学习成长离不开网络上的每一位开源博主，或许感激他们最好的方式就是成为他们。正所谓，遇见光，成为光，散发光。现在这个年代，所有知识几乎都可以免费获取。在备战考研，很久没有敲代码了。拿过一些算法竞赛的名次吧。希望能成为一名游戏开发者！在分享中巩固自身所学。]]></description><category></category></item><item><title><![CDATA[Unity2D 街机风太空射击游戏 学习记录 #16 道具父类提取 & 旋涡道具]]></title><link>https://blog.youkuaiyun.com/mzh1213/article/details/148976628</link><guid>https://blog.youkuaiyun.com/mzh1213/article/details/148976628</guid><author>mzh1213</author><pubDate>Sat, 28 Jun 2025 16:09:30 +0800</pubDate><description><![CDATA[摘要：这是一个基于Unity的2D太空射击游戏学习项目笔记，作者跟随siki学院凉鞋老师的教程进行开发。文章分享了道具系统的优化思路，通过创建道具父类简化代码结构，并附上了项目视频教程链接和开源代码地址。作者以记录学习过程为目的，同时希望帮助其他学习者，文中包含部分开发截图和实现细节。虽然笔记内容不连贯（已学习10期），但提供了实用的技术参考。]]></description><category></category></item><item><title><![CDATA[Unity2D 街机风太空射击游戏 学习记录 #15 子弹变大道具 & 伤害提升道具]]></title><link>https://blog.youkuaiyun.com/mzh1213/article/details/148966134</link><guid>https://blog.youkuaiyun.com/mzh1213/article/details/148966134</guid><author>mzh1213</author><pubDate>Sat, 28 Jun 2025 10:38:18 +0800</pubDate><description><![CDATA[这是一款基于Unity引擎开发的2D街机风太空射击游戏，笔者并不是游戏开发人，作者是siki学院的凉鞋老师。笔者只是学习项目，记录学习，同时也想帮助他人更好的学习这个项目作者会记录学习这一期用到的知识，和一些代码逻辑。由于笔者已经跟着视频做了10期，所以这个记录博客不会很连贯。这里笔者也把自己跟做的项目开源到了码云上引入新的道具除了新道具的实现部分，其余都和之前一样，是重复工作。总结一下就是为了在Bullet中拿到精灵，我们将其加入一个Bind脚本即可。]]></description><category></category></item><item><title><![CDATA[Unity2D 街机风太空射击游戏 学习记录 #14 环射和散射组合 & 循环屏幕道具]]></title><link>https://blog.youkuaiyun.com/mzh1213/article/details/148932624</link><guid>https://blog.youkuaiyun.com/mzh1213/article/details/148932624</guid><author>mzh1213</author><pubDate>Thu, 26 Jun 2025 21:26:31 +0800</pubDate><description><![CDATA[这是一篇关于Unity引擎开发的2D太空射击游戏学习笔记。作者跟随siki学院凉鞋老师的教程，记录了第10期学习内容。重点介绍了道具效果的组合实现（散射+环射），通过QF框架优化游戏对象查找，以及循环屏幕道具的开发思路。文章提供了完整项目地址和开源代码链接，旨在分享学习心得。作者声明这是非原创作品的学习记录，存在不足并欢迎指正。]]></description><category></category></item><item><title><![CDATA[Unity2D 街机风太空射击游戏 学习记录 #13 射击频率道具 & 最高分]]></title><link>https://blog.youkuaiyun.com/mzh1213/article/details/148832788</link><guid>https://blog.youkuaiyun.com/mzh1213/article/details/148832788</guid><author>mzh1213</author><pubDate>Tue, 24 Jun 2025 16:49:03 +0800</pubDate><description><![CDATA[本文介绍了一款基于Unity引擎开发的2D太空射击游戏的学习笔记。作者跟随siki学院凉鞋老师的教程进行开发，目前已完成10期内容。文章分享了几个优化技巧：使用QF框架的ViewController自动生成脚本、GetComponent优化、SpriteRenderer获取优化等。还分析了射击频率控制、最高分存储等核心功能的实现逻辑。作者将学习项目开源在码云上，并希望通过文章记录学习过程，同时帮助其他学习者。文章最后谦虚地表示存在不足，欢迎读者指正。]]></description><category></category></item><item><title><![CDATA[Unity2D 街机风太空射击游戏 学习记录 #12QFramework引入]]></title><link>https://blog.youkuaiyun.com/mzh1213/article/details/148815815</link><guid>https://blog.youkuaiyun.com/mzh1213/article/details/148815815</guid><author>mzh1213</author><pubDate>Sun, 22 Jun 2025 21:03:51 +0800</pubDate><description><![CDATA[摘要 这是一篇关于Unity 2D太空射击游戏开发的学习笔记，主要记录了使用QFramework框架优化的代码片段。作者分享了两个关键优化点：一是利用QFramework的RandomUtility.Choose()方法简化了随机道具生成逻辑；二是将传统的角度计算代码Mathf.Atan2优化为更简洁的Vector2扩展方法ToAngle()。文章还提供了项目视频教程链接和开源代码仓库地址，方便其他学习者参考。这些优化体现了QFramework框架在简化Unity开发流程、提高代码可读性方面的优势。]]></description><category></category></item><item><title><![CDATA[数据结构：表达式求值，括号匹配 #栈的应用(C,C++)]]></title><link>https://blog.youkuaiyun.com/mzh1213/article/details/148807581</link><guid>https://blog.youkuaiyun.com/mzh1213/article/details/148807581</guid><author>mzh1213</author><pubDate>Sat, 21 Jun 2025 11:12:07 +0800</pubDate><description><![CDATA[本文记录了数据结构学习中表达式求值和括号匹配两个经典算法的代码实现。表达式求值部分展示了如何使用双栈结构（操作数栈和运算符栈）将中缀表达式转为后缀表达式并计算，定义了运算符优先级并通过栈操作完成运算。括号匹配算法利用栈结构检查括号是否合法配对，遇到左括号压栈，右括号时弹栈检查匹配。两段代码均采用C++实现，包含详细注释，可直接运行测试。配套提供了线性表相关理论知识的博客链接和代码合集仓库地址，重点强调实际编程实现而非单纯理论学习。]]></description><category></category></item><item><title><![CDATA[循环队列的顺序实现和链式实现 #数据结构(C,C++)]]></title><link>https://blog.youkuaiyun.com/mzh1213/article/details/148804397</link><guid>https://blog.youkuaiyun.com/mzh1213/article/details/148804397</guid><author>mzh1213</author><pubDate>Sat, 21 Jun 2025 09:26:59 +0800</pubDate><description><![CDATA[数据结构队列实现代码合集 文章主要记录了队列数据结构的两种实现方式：顺序循环队列和链式队列。顺序循环队列通过牺牲一个存储单元解决假溢出问题，提供了初始化、判空、判满、入队、出队和获取队首等操作。链式队列采用带头尾节点的单链表实现，同样包含初始化、判空、入队、出队和获取队首等功能。所有代码实现强调实用性，参考了王道和严蔚敏的数据结构教材。完整代码可在GitCode仓库查看。]]></description><category></category></item><item><title><![CDATA[Unity2D 街机风太空射击游戏 学习记录 #12环射道具的引入]]></title><link>https://blog.youkuaiyun.com/mzh1213/article/details/148624223</link><guid>https://blog.youkuaiyun.com/mzh1213/article/details/148624223</guid><author>mzh1213</author><pubDate>Fri, 20 Jun 2025 21:45:47 +0800</pubDate><description><![CDATA[本文介绍了基于Unity引擎开发的2D街机风太空射击游戏中的道具系统实现。主要内容包括： 道具图标导入时取消Generate Physics Shapes选项的考虑 PowerUpCircle道具的实现逻辑，包括朝向原点移动和边界检测 道具拾取机制的统一处理方式 环射特效的具体实现代码 道具随机掉落系统的设计思路 使用克隆预制体的重要性说明 文章以学习笔记形式呈现，记录了从视频教程中学到的关键技术点，对道具系统的多个方面进行了详细解析，并附有完整项目源码地址。]]></description><category></category></item><item><title><![CDATA[L2-042 老板的作息表 #字符串模拟]]></title><link>https://blog.youkuaiyun.com/mzh1213/article/details/147159268</link><guid>https://blog.youkuaiyun.com/mzh1213/article/details/147159268</guid><author>mzh1213</author><pubDate>Sat, 12 Apr 2025 09:34:15 +0800</pubDate><description><![CDATA[新浪微博上有人发了某老板的作息时间表，表示其每天 4:30 就起床了。但立刻有眼尖的网友问：这时间表不完整啊，早上九点到下午一点干啥了？😇 本篇文章可能存在多处不足，如有修改意见，可以私信或者评论我哦 😇。本题就请你编写程序，检查任意一张时间表，找出其中没写出来的时间段。🌻编写本篇文章目的是笔者想以输出的形式进行学习，顺便记录学习点滴🌻。B站up主一天五顿饭。]]></description><category></category></item><item><title><![CDATA[L2-046 天梯赛的赛场安排 #二次手写cmp比较函数 这个模拟思路太神了]]></title><link>https://blog.youkuaiyun.com/mzh1213/article/details/147026097</link><guid>https://blog.youkuaiyun.com/mzh1213/article/details/147026097</guid><author>mzh1213</author><pubDate>Sun, 06 Apr 2025 16:09:15 +0800</pubDate><description><![CDATA[😇 本篇文章可能存在多处不足，如有修改意见，可以私信或者评论我哦 😇。🌻编写本篇文章目的是笔者想以输出的形式进行学习，顺便记录学习点滴🌻。巴拉巴拉一大堆,实际上题目都告诉我们用什么算法能得到最优解了。但是模拟的过程还是十分的艰辛。B站up主,一天五顿饭。]]></description><category></category></item><item><title><![CDATA[L2-048 寻宝图 # Flood fill]]></title><link>https://blog.youkuaiyun.com/mzh1213/article/details/147021973</link><guid>https://blog.youkuaiyun.com/mzh1213/article/details/147021973</guid><author>mzh1213</author><pubDate>Sun, 06 Apr 2025 10:28:40 +0800</pubDate><description><![CDATA[给定一幅地图，其中有水域，有陆地。有些岛屿上埋藏有宝藏，这些有宝藏的点也被标记出来了。本题就请你统计一下，给定的地图上一共有多少岛屿，其中有多少是有宝藏的岛屿。），是地图的尺寸，表示地图由 N 行 M 列格子构成。随后 N 行，每行给出 M 位个位数，其中 0 表示水域，1 表示陆地，2-9 表示宝藏。注意：两个格子共享一条边时，才是“相邻”的。😇 本篇文章可能存在多处不足，如有修改意见，可以私信或者评论我哦 😇。在一行中输出 2 个整数，分别是岛屿的总数量和有宝藏的岛屿的数量。B站up主 一天五顿饭。]]></description><category></category></item><item><title><![CDATA[L2-049 鱼与熊掌 #反向建图]]></title><link>https://blog.youkuaiyun.com/mzh1213/article/details/147021177</link><guid>https://blog.youkuaiyun.com/mzh1213/article/details/147021177</guid><author>mzh1213</author><pubDate>Sun, 06 Apr 2025 10:10:13 +0800</pubDate><description><![CDATA[输入首先在第一行给出 2 个正整数，分别是：n（≤10 5）为总人数（所有人从 1 到 n 编号）、m（2≤m≤10 5）为物品种类的总数（所有物品种类从 1 到 m 编号）。最后是查询信息：首先在一行中给出查询总量 Q（≤100），随后 Q 行，每行给出一对物品种类编号，其间以空格分隔。3）是该人拥有的物品种类数量，后面的 M[*] 是物品种类的编号。题目保证每个人的物品种类清单中都没有重复给出的种类。这样对于指定的物品,我们只需要遍历该物品被谁拥有。对每一次查询，在一行中输出两种物品兼得的人数。]]></description><category></category></item><item><title><![CDATA[L2-050 懂蛇语 #字符串处理]]></title><link>https://blog.youkuaiyun.com/mzh1213/article/details/147020231</link><guid>https://blog.youkuaiyun.com/mzh1213/article/details/147020231</guid><author>mzh1213</author><pubDate>Sun, 06 Apr 2025 09:35:02 +0800</pubDate><description><![CDATA[天梯赛的字符串的题基本上都是🤢。]]></description><category></category></item><item><title><![CDATA[L2-051 满树的遍历 # DFS遍历树]]></title><link>https://blog.youkuaiyun.com/mzh1213/article/details/147019373</link><guid>https://blog.youkuaiyun.com/mzh1213/article/details/147019373</guid><author>mzh1213</author><pubDate>Sun, 06 Apr 2025 09:03:51 +0800</pubDate><description><![CDATA[如果输入的树是 k 阶满树，则加 1 个空格后输出 yes，否则输出 no。最后在第二行输出该树的前序遍历序列，数字间以 1 个空格分隔，行首尾不得有多余空格。随后 n 行，第 i 行（1≤i≤n）给出第 i 个结点的父结点编号。根结点没有父结点，则对应的父结点编号为 0。一棵“k 阶满树”是指树中所有非叶结点的度都是 k 的树。判断所有非0大小的顶点(不是叶节点)的孩子数量,如果不等于k那么就不是k阶满树,同时动态更新k的值。注：树中结点的度是其拥有的子树的个数，而树的度是树内各结点的度的最大值。]]></description><category></category></item><item><title><![CDATA[L2-052 吉利矩阵 # DFS 剪枝]]></title><link>https://blog.youkuaiyun.com/mzh1213/article/details/147019319</link><guid>https://blog.youkuaiyun.com/mzh1213/article/details/147019319</guid><author>mzh1213</author><pubDate>Sun, 06 Apr 2025 08:30:23 +0800</pubDate><description><![CDATA[本题就请你统计一下，把 7 换成任何一个 [2,9] 区间内的正整数 L，把矩阵阶数换成任何一个 [2,4] 区间内的正整数 N，满足条件“所有元素为非负整数，且各行各列的元素和都等于 L”的 N×N 方阵一共有多少种？所有元素为非负整数，且各行各列的元素和都等于 7 的 3×3 方阵称为“吉利矩阵”，因为这样的矩阵一共有 666 种。😇 本篇文章可能存在多处不足，如有修改意见，可以私信或者评论我哦 😇。从矩阵左上角开始枚举所有可能填入的元素，根据条件进行剪枝优化。B站up主 一天五顿饭。]]></description><category></category></item><item><title><![CDATA[团队程序设计天梯赛 L2-026 小字辈]]></title><link>https://blog.youkuaiyun.com/mzh1213/article/details/147014577</link><guid>https://blog.youkuaiyun.com/mzh1213/article/details/147014577</guid><author>mzh1213</author><pubDate>Sat, 05 Apr 2025 19:18:53 +0800</pubDate><description><![CDATA[输入在第一行给出家族人口总数 N（不超过 100 000 的正整数） —— 简单起见，我们把家族成员从 1 到 N 编号。随后第二行给出 N 个编号，其中第 i 个编号对应第 i 位成员的父/母。家谱中辈分最高的老祖宗对应的父/母编号为 -1。一行中的数字间以空格分隔。首先输出最小的辈分（老祖宗的辈分为 1，以下逐级递增）。然后在第二行按递增顺序输出辈分最小的成员的编号。本题给定一个庞大家族的家谱，要请你给出最小一辈的名单。辈分就是一个结点的深度，最大深度的结点就是最小辈分。b站up主 : 一天五顿饭。]]></description><category></category></item></channel></rss>