欢迎来到我的小站
因为喜欢,所以我为之痴迷。
额,其实还没想好写些什么。
这个小站主要用途是让我的总结、笔记之类的能够多端协同以及便于分享给我的朋友。可能后续会加上杂谈、文章之类的吧,但目前没什么想法。
往后打算开始随缘更新博客。
2025.09.24 感觉博客有点空荡荡的,从现在开始不断输出内容。先从每日一题和每周周记,复习和学习到什么板块就输出什么板块的内容
加载过慢请开启缓存 浏览器默认开启
因为喜欢,所以我为之痴迷。
额,其实还没想好写些什么。
这个小站主要用途是让我的总结、笔记之类的能够多端协同以及便于分享给我的朋友。可能后续会加上杂谈、文章之类的吧,但目前没什么想法。
往后打算开始随缘更新博客。
2025.09.24 感觉博客有点空荡荡的,从现在开始不断输出内容。先从每日一题和每周周记,复习和学习到什么板块就输出什么板块的内容
前两篇整理的是玩家状态和跳跃手感。这部分继续看战斗相关内容:敌人怎样切换状态、属性怎样计算、Buff 放在哪里,以及技能冷却和旧技能树目前是什么情况。
MetroidvaniaLike 目前用 Entity 提供共同能力,Player 和 Enemy 再各自处理输入或 AI。重新检查代码时也发现,旧技能树已经标记为废弃,这里会按现状写清楚。
项目源码:qian488/MetroidvaniaLike。
做横版角色跳跃时,最直接的判断是“这一帧按下跳跃,并且角色在地面”。实际玩起来会出现一个问题:刚离开平台才按键,或者落地前一点按键,系统都不会起跳。
MetroidvaniaLike 里给这两种情况分别加了土狼时间和 Jump Buffer。它们本身只有几个计时器,麻烦的地方主要在消费时机,以及怎样和二段跳、墙滑、冲刺等状态一起工作。
这篇记录目前的实现思路和后续还需要补的状态优先级。
项目源码:qian488/MetroidvaniaLike。
MetroidvaniaLike 是我用 Unity 6 做的一个 2D 横版动作 RPG 练习项目。玩家从最初的移动和跳跃,慢慢加到了二段跳、墙滑、蹬墙跳、冲刺、攻击、受伤和死亡。动作多起来以后,Player.Update() 里同时处理输入、动画和速度会越来越乱,于是项目给每个动作单独写了状态类。
这篇先记录状态机目前的结构,以及我重新检查代码时发现的切换约束问题。
项目源码:qian488/MetroidvaniaLike。
弹幕本身做出来以后,还要把敌人、波次和 Boss 排成一关。车万空寂花现在用 StageData 保存任务数据,再由 StageRunner 按时间触发。进入关卡前还会加载资源、建立子弹贴图索引并预热对象池。
这一篇主要记录这两个部分是怎么接起来的,以及目前 Resources 方案还留下了哪些问题。
源码入口:qian488/Danmaku。
车万空寂花里的敌弹数量比较多,每颗子弹还要处理移动、碰撞、越界和擦弹。如果全部各写各的,清屏、暂停和回收都会比较麻烦。目前项目把敌弹统一交给 BulletManager 管理,再配合对象池复用 GameObject。
这篇把这条链路单独拆出来,顺便记录几个容易出问题的地方。公开仓库目前没有完整的 Profiler 对照数据,所以性能部分只写已经实现的结构和后续验证方法。
源码入口:qian488/Danmaku。
“车万空寂花”最开始只是想做一个仿东方 Project 的弹幕游戏。项目往后做,角色与难度选择、完整关卡、Boss、分数记录、PC 和移动端控制都加了进来,原本单独运行的弹幕代码也要和关卡、输入、资源、UI 接起来。
最近正好在整理这个项目的资料,于是先把目前已经跑通的流程写下来。本文主要看整体结构,后面两篇再分别展开弹幕管理和关卡加载。
项目源码:qian488/Danmaku;试玩页面:itch.io。
【题目指路】每日一题-数组的三角和
给你一个下标从 0 开始的整数数组 nums ,其中 nums[i] 是 0 到 9 之间(两者都包含)的一个数字。
nums 的 三角和 是执行以下操作以后最后剩下元素的值:
nums 初始包含 n 个元素。如果 n == 1 ,终止 操作。否则,创建 一个新的下标从 0 开始的长度为 n - 1 的整数数组 newNums 。0 <= i < n - 1 的下标 i ,newNums[i] 赋值 为 (nums[i] + nums[i+1]) % 10 ,% 表示取余运算。newNums 替换 数组 nums 。请你返回 nums 的三角和。
【题目指路】每日一题:多边形三角剖分的最低得分
你有一个凸的 n 边形,其每个顶点都有一个整数值。给定一个整数数组 values ,其中 values[i] 是第 i 个顶点的值(即 顺时针顺序 )。
假设将多边形 剖分 为 n - 2 个三角形。对于每个三角形,该三角形的值是顶点标记的乘积,三角剖分的分数是进行三角剖分后所有 n - 2 个三角形的值之和。
返回 多边形进行三角剖分后可以得到的最低分 。
【题目指路】每日一题:三角形的最大周长
给定由一些正数(代表长度)组成的数组 nums ,返回 由其中三个长度组成的、面积不为零的三角形的最大周长 。如果不能形成任何面积不为零的三角形,返回 0。
【题目指路】每日一题:最大三角形面积
给你一个由 X-Y 平面上的点组成的数组 points ,其中 points[i] = [xi, yi] 。从其中取任意三个不同的点组成三角形,返回能组成的最大三角形的面积。与真实值误差在 10^-5 内的答案将会视为正确答案。
【题目指路】每日一题:三角形最小路径和
给定一个三角形 triangle ,找出自顶向下的最小路径和。
每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一步可以移动到下一行的下标 i 或 i + 1 。
【题目指路】每日一题:分数到小数
给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以 字符串形式返回小数 。
如果小数部分为循环小数,则将循环的部分括在括号内。
如果存在多个答案,只需返回 任意一个 。
对于所有给定的输入,保证 答案字符串的长度小于 $10^{4}$ 。
【题目指路】每日一题:比较版本号
给你两个 版本号字符串 version1 和 version2 ,请你比较它们。版本号由被点 '.' 分开的修订号组成。修订号的值 是它 转换为整数 并忽略前导零。
比较版本号时,请按 从左到右的顺序 依次比较它们的修订号。如果其中一个版本字符串的修订号较少,则将缺失的修订号视为 0。
返回规则如下:
version1 < version2 返回 -1`,version1 > version2 返回 1,0。