从零开发FNF模组:HaxeFlixel实战与Insane谱面设计指南
在音游和同人创作领域Friday Night Funkin (FNF) 凭借其开放性和社区活力一直是创意爆改的沃土。许多开发者不满足于原版内容纷纷基于其开源代码进行深度二次创作诞生了无数令人惊叹的模组Mod。其中将经典角色、IP与FNF核心玩法结合并重构美术、音乐与谱面设计的“爆改”项目尤其考验创作者的综合能力。如果你曾好奇那些播放量极高的“疯狂难度”演示视频背后究竟是如何从零搭建一个完整的、高水准的FNF模组那么本文将为你彻底拆解这一过程。本文将以一个虚构但极具代表性的目标为例制作一个类似“【fnf QT 爆改光头强PE重置】”风格的高质量模组重点展示如何为其中一首歌曲实现“Insane”疯狂难度的谱面与效果。我们将从环境搭建、资源处理、代码结构、谱面制作到最终测试打包提供一套完整的、可复现的实战指南。无论你是想为自己喜欢的角色制作模组还是希望深入理解FNF Mod开发的技术栈这篇文章都能带你走完全程。1. 核心概念与开发准备在开始爆改之前我们必须明确几个核心概念和所需的工具链。FNF本身是一个使用HaxeFlixel引擎开发的开源节奏游戏其模组本质上是基于原版代码库的扩展或重写。1.1 什么是FNF模组Mod模组通常指通过修改或添加游戏资源如图像、音频、JSON数据和源代码Haxe来引入新角色、新歌曲、新关卡甚至新游戏机制的创作。像“光头强PE重置”这类爆改项目往往涉及美术资源全替换背景、角色精灵图Sprite、图标、UI元素全部自定义。音频资源重制歌曲Instrumental和角色人声Voices需要重新编曲或剪辑。谱面Chart设计这是模组的核心定义了音符出现的时机、类型和排列直接决定游戏难度如Easy, Normal, Hard, Insane。代码扩展可能需要修改游戏逻辑以支持新的角色动画、特效、游戏阶段Stage或特殊的游戏机制。1.2 开发环境与工具清单工欲善其事必先利其器。以下是开发一个完整FNF模组所需的基本环境操作系统Windows 10/11, macOS 或 Linux。本文示例以Windows为主但步骤在其他系统上大同小异。代码编辑器推荐使用Visual Studio Code (VSCode)因其对Haxe有优秀的扩展支持。Haxe开发环境安装Haxe从Haxe官网下载并安装最新稳定版如4.3.x。安装时务必勾选“将Haxe添加到系统环境变量”。安装HaxelibHaxe的包管理器通常随Haxe一同安装。我们需要通过它安装必要的库。关键Haxe库打开命令行CMD或PowerShell依次执行以下命令安装haxelib install hmm haxelib install flixel haxelib install flixel-tools haxelib install flixel-ui haxelib install hscript haxelib install polymod安装Lime与OpenFL它们是HaxeFlixel的基础框架。haxelib install lime haxelib run lime setup haxelib install openfl haxelib run openfl setup游戏源代码从FNF官方GitHub仓库FunkinCrew/Funkin克隆或下载最新稳定版的源代码。这是我们进行所有修改的基础。资源处理工具图像编辑Adobe Photoshop, GIMP, Krita 或 Aseprite用于像素艺术。音频编辑Audacity, FL Studio, Ableton Live 或任何你熟悉的DAW数字音频工作站用于处理.ogg格式的歌曲和人声。谱面编辑器虽然可以手写JSON但强烈推荐使用可视化编辑器如FNF Chart Editor一个基于网页的工具或Kade Engine内置的编辑器它们能极大提升谱面制作效率和精度。2. 项目结构解析与初始化拿到FNF源代码后我们首先需要理解其目录结构并建立我们模组的工作区。2.1 源代码目录结构概览解压或克隆源代码后你会看到类似如下的结构精简版Funkin/ ├── source/ # Haxe源代码目录 │ ├── Main.hx # 程序入口 │ ├── states/ # 游戏状态菜单、游玩、载入等 │ │ └── PlayState.hx # *游玩状态核心逻辑修改重点* │ └── ... ├── assets/ # 所有游戏资源 │ ├── data/ # 谱面JSON文件、对话文本等 │ ├── images/ # 图片资源背景、角色、UI等 │ ├── music/ # 音乐文件菜单BGM等 │ ├── songs/ # *歌曲资源文件夹核心目录* │ │ ├── tutorial/ # 示例歌曲文件夹 │ │ │ ├── Inst.ogg # 伴奏 │ │ │ ├── Voices.ogg # 人声 │ │ │ └── chart.json # 谱面数据 │ │ └── ... │ └── sounds/ # 音效文件 ├── export/ # 编译输出目录 ├── lime.yaml # 项目构建配置文件 └── Project.xml # OpenFL项目文件2.2 创建你的模组歌曲文件夹我们的目标是为“光头强”制作一首名为“Logging-Madness”伐木狂想曲的歌曲并包含Insane难度。在assets/songs/目录下创建一个新的文件夹以你的歌曲ID命名例如logging-madness。在该文件夹内创建以下结构logging-madness/ ├── Inst.ogg # 歌曲伴奏必须为.ogg格式 ├── Voices.ogg # 角色人声必须为.ogg格式 ├── dialogs.txt # 可选歌曲前后对话 └── chart.json # 谱面数据文件可先复制一个模板准备音频使用音频编辑软件将你的歌曲导出为双声道立体声的.ogg文件。Inst.ogg应包含所有乐器音轨但不含人声Voices.ogg应只包含人声或需要玩家跟唱的部分。确保音量电平合适避免爆音或过小。3. 谱面制作从零打造“Insane”难度谱面文件chart.json是游戏逻辑的蓝图。它定义了音符何时出现、持续多久、属于哪个轨道等。3.1 理解JSON谱面结构一个基础的chart.json结构如下{ song: { song: Logging-Madness, // 歌曲ID与文件夹名一致 notes: [], // 音符数组核心数据 events: [], // 事件数组用于触发动画、镜头移动等 bpm: 150.0, // 歌曲速度每分钟节拍数 needsVoices: true, // 是否需要人声轨道 speed: 2.5, // 音符滚动速度 player1: bf, // 玩家角色对应assets/images/characters/ player2: opponent, // 对手角色 gfVersion: gf, // 观众角色 stage: stage, // 舞台对应assets/images/stages/ validScore: true // 是否计入分数 } }其中notes数组的每个对象代表一个音符{ sectionNotes: [ // 该小节的所有音符 [时间戳毫秒, 轨道索引, 音符时长毫秒], ... ], lengthInSteps: 16, // 每小节步数通常为16 typeOfSection: 0, // 小节类型0普通1副歌等 mustHitSection: false, // 是否为玩家小节true则轨道0-3归玩家 bpm: 150.0, // 该小节BPM可覆盖全局 changeBPM: false // 该小节是否改变BPM }时间戳从歌曲开始计算的毫秒数决定音符何时出现。轨道索引0-3代表对手轨左、下、上、右4-7代表玩家轨左、下、上、右。音符时长对于普通音符为0对于长按音符Hold Notes则为需要按住的时间长度毫秒。3.2 使用可视化编辑器制作Insane谱面手动计算毫秒时间戳极其繁琐且容易出错。强烈推荐使用FNF Chart Editor。在浏览器中打开Chart Editor可搜索找到在线版本或下载本地版本。加载音频将你的Inst.ogg和Voices.ogg拖入编辑器或通过按钮加载。设置BPM和拍号在编辑器内设置歌曲的BPM如150和拍号通常4/4拍。编辑器会自动将时间轴划分为小节和步进。绘制音符选择对手轨左侧或玩家轨右侧。在时间轴上点击对应的位置来放置音符。对于Insane难度你可以设计高速连打在极短时间内连续放置多个音符。交叉轨道左右手需要快速交替击打的排列。复杂长按结合长按音符与点按音符。变速段通过修改不同小节的speed值或插入BPM变化事件制造节奏突变。添加事件在编辑器的事件轨道上可以添加如“镜头聚焦对手”、“舞台灯光变化”、“角色播放特殊动画”等事件。这些事件需要在代码中定义但编辑器允许你放置触发器。导出JSON完成谱面设计后导出chart.json文件并覆盖到你的assets/songs/logging-madness/目录下。3.3 Insane难度设计要点节奏密度通常BPM较高160或在中速BPM下使用大量的16分音符、32分音符甚至三连音。反直觉排列打破“左-下-上-右”的常规顺序设计一些需要手部交叉或快速滑动的模式。视觉干扰可以通过自定义舞台背景动画、角色特效来增加视觉难度但这部分需要代码和美术配合。测试迭代制作一段谱面后立即在游戏内测试手感。反复调整音符的时机和排列直到达到你想要的“既难又公平”的程度。4. 自定义角色与舞台光头强PE重置“爆改”的精髓在于视觉和主题的彻底重塑。我们需要替换游戏中的角色和舞台资源。4.1 准备角色精灵图SpriteFNF角色动画使用精灵图Sprite Sheet。你需要为“光头强”和对应的“BF”男孩朋友制作一套。规格原版BF的精灵图通常包含多个动画帧如 idle待机、singLEFT唱左、singDOWN唱下、singUP唱上、singRIGHT唱右等。每个动画帧大小一致如150x150像素。制作使用图像编辑软件绘制“光头强”风格的角色并按照相同的动画命名和帧顺序生成一张PNG格式的精灵图。同时也需要一个对应的XML文件来描述每一帧的位置和大小许多引擎支持TexturePacker格式或简单的Aseprite JSON导出。放置将制作好的PNG和XML文件放入assets/images/characters/目录例如qiang.png和qiang.xml。代码关联在source/PlayState.hx中找到创建角色的部分通常在create()函数里。你需要加载你的自定义精灵图。代码可能类似于// 替换对手角色 var qiang:Character new Character(100, 100, qiang); add(qiang);你需要确保Character.hx类能正确解析你的XML文件并播放动画。4.2 创建自定义舞台背景图绘制一张作为舞台背景的图片例如一个森林或伐木场。放入assets/images/stages/目录例如logging-stage.png。前景元素如果需要可以绘制一些前景装饰物如飘落的树叶、闪烁的灯光它们通常作为独立的精灵添加到舞台层。代码加载在PlayState.hx的create()函数中修改舞台加载逻辑。你可能需要创建一个新的Stage类或直接修改现有逻辑来加载你的背景图和前景元素。// 示例简单加载背景 var bg:FlxSprite new FlxSprite(-600, -200).loadGraphic(Paths.image(stages/logging-stage)); bg.scrollFactor.set(0.9, 0.9); add(bg);5. 代码集成与游戏逻辑调整要让你的模组在游戏中被识别和运行需要修改源代码。5.1 添加歌曲到歌曲列表在source/FreeplayState.hx中有一个歌曲列表数组。你需要将你的歌曲添加进去包括其显示名称、曲作者、难度列表等。// 在 songs 数组中添加你的歌曲数据 var songs:ArraySongMetadata [ new SongMetadata(Tutorial, 0, gf), // ... 其他原版歌曲 new SongMetadata(Logging-Madness, 10, qiang, FlxColor.ORANGE) // 10为周目编号qiang为对手角色颜色为Freeplay界面显示色 ];同时在source/WeekData.hx如果存在或相关文件中定义你的歌曲属于哪个“周”Week用于故事模式。5.2 修改PlayState以支持自定义资源在PlayState.hx的create()函数中需要根据当前加载的歌曲ID来动态设置角色、舞台和谱面。// 在 create() 函数中通常在加载谱面之后 switch (SONG.song.toLowerCase()) { case logging-madness: // 设置自定义舞台 curStage logging-stage; // 加载自定义背景、前景等 // ... // 设置对手角色 dad new Character(100, 100, qiang); // 设置玩家角色如果需要自定义BF // boyfriend new Boyfriend(770, 450, bf-qiang-skin); // 设置观众角色 // gf new Character(400, 130, gf-variant); }5.3 编译与测试打开命令行导航到你的FNF项目根目录。执行编译命令根据目标平台不同测试Windowslime test windows测试HTML5 快速lime test html5如果编译成功游戏窗口或浏览器页面将打开。进入Freeplay模式你应该能看到你的新歌曲“Logging-Madness”。选择Insane难度开始测试。调试如果游戏崩溃或资源不显示检查命令行输出的错误信息。常见问题包括文件路径或名称拼写错误。JSON格式错误可使用JSON验证工具检查。音频格式问题必须为.ogg 且编码正确。Haxe代码语法错误。6. 常见问题与排查指南在模组开发过程中你几乎一定会遇到各种问题。下表列出了一些高频问题及其解决思路问题现象可能原因排查与解决思路编译失败Haxe报错1. Haxe/Haxelib版本不兼容。2. 缺少某个库。3. 源代码语法错误。1. 确认安装的Haxe版本与FNF源码要求匹配查看haxelib.json。2. 运行haxelib install [库名]安装缺失库。3. 仔细阅读命令行错误定位到具体文件和行号进行修改。游戏能运行但歌曲列表不显示新歌1. 未在FreeplayState.hx中添加歌曲元数据。2. 歌曲文件夹命名或路径错误。3.SongMetadata构造函数参数错误。1. 检查FreeplayState.hx中的songs数组是否已添加。2. 确认assets/songs/下的文件夹名与代码中的歌曲ID完全一致大小写敏感。3. 核对SongMetadata的各个参数名称、周目、角色等。选择歌曲后加载失败或黑屏1.chart.json格式错误或为空。2.Inst.ogg或Voices.ogg文件缺失、损坏或格式不对。3. 在PlayState中加载自定义资源时出现空引用。1. 用JSON验证器检查chart.json。2. 确认音频文件存在且是有效的.ogg文件。可用播放器测试。3. 在PlayState的create()中相关switch case里添加trace输出或检查角色/舞台路径。角色或背景图片不显示1. 图片文件路径错误。2. 图片尺寸或格式问题如非2的幂次方宽高在某些平台有问题。3. 精灵图XML描述文件错误。1. 使用Paths.image()函数时确认参数与assets/images/下的子路径匹配。2. 尝试将图片转换为PNG格式并调整尺寸。3. 检查XML文件确保帧名、坐标、宽高正确。Insane难度谱面音符对不上音乐1.chart.json中的BPM设置错误。2. 谱面时间戳计算有误。3. 音频文件有空白静音开头。1. 使用音频软件精确测量歌曲BPM并确保与谱面BPM一致。2.强烈建议使用可视化谱面编辑器它自动处理时间戳计算。3. 在音频编辑软件中裁剪掉歌曲开头不必要的静音部分。游戏运行时卡顿或音频不同步1. 音频文件码率或采样率过高。2. 图片资源过大未进行优化。3. 代码中存在性能问题如每帧创建新对象。1. 将音频转换为适当的格式如.ogg 质量5-7降低采样率44100Hz通常足够。2. 压缩PNG图片或减小精灵图尺寸。3. 优化代码避免在更新循环update()中进行重型操作。7. 进阶优化与发布准备当你的模组基本功能完成后可以考虑以下优化让它更接近“爆改”水准。7.1 添加自定义特效镜头效果在PlayState.hx中修改cameraFollow的逻辑或在谱面事件中触发镜头抖动、缩放。着色器ShadersHaxeFlixel支持GLSL着色器。你可以为整个舞台或特定角色添加色彩扭曲、模糊、扫描线等酷炫效果。这需要一定的图形编程知识。粒子系统在玩家击中音符或完成连击时发射自定义粒子如木材碎屑、星星。7.2 优化性能与兼容性资源预加载在加载界面将所需的图片、音频提前加载到内存避免游戏过程中卡顿。分辨率适配确保你的美术资源在不同分辨率下都能正常显示UI元素布局不会错乱。内存管理及时销毁不再使用的对象如对话气泡、临时特效防止内存泄漏。7.3 打包与发布编译发布版本使用Lime命令编译各平台版本如lime build windows、lime build html5。发布版会比测试版更优化。创建Mods文件夹结构更规范的发布方式是将你的模组歌曲、图像、代码打包成一个独立的.mod文件或文件夹并放入游戏根目录的mods/文件夹中。这通常需要你修改项目以支持Polymod等模组加载库。编写说明文档创建一个README.txt或mod.xml说明模组名称、作者、版本、包含内容、安装方法等。测试与反馈在小范围内发布测试版收集其他玩家的反馈特别是关于Insane难度谱面的合理性和BUG报告。选择平台发布你可以将模组发布到GameBanana、Itch.io等FNF模组社区或者通过视频网站如B站分享你的成果和演示视频。开发一个完整的FNF爆改模组是一个融合了美术、音乐、设计和编程的综合性项目。从环境搭建到谱面设计再到代码集成与优化每一步都需要耐心和细心。本文详细拆解了从零开始制作一个包含Insane难度歌曲的模组全流程重点攻克了谱面制作和资源集成这两个核心难点。记住最好的学习方式是动手实践从一个简单的歌曲替换开始逐步加入自定义角色、舞台最后挑战设计高难度谱面。过程中遇到问题多查阅FNF社区Wiki、源码注释和开发者论坛大部分技术难题都有解决方案。期待你能创造出下一个令人惊叹的“爆改”作品。

相关新闻

英雄联盟Akari助手:免费开源的游戏效率提升终极方案

英雄联盟Akari助手:免费开源的游戏效率提升终极方案

英雄联盟Akari助手:免费开源的游戏效率提升终极方案 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 英雄联盟Akari助手是一款基于L…

2026/8/4 14:01:09 阅读更多 →
彻底告别论文踩坑!Gradpaper靠谱实力征服全网毕业生

彻底告别论文踩坑!Gradpaper靠谱实力征服全网毕业生

纵观全网论文工具,要么查重不准、频繁翻车,要么降重劣质、破坏论文,要么价格虚高、性价比极低,要么存在泄露风险、毫无保障。无数毕业生踩遍所有坑后发现,只有Gradpaper兼顾精准、安全、专业、平价、高效,是…

2026/8/4 14:01:09 阅读更多 →
Unity LoopScrollRect循环滚动列表:原理、实战与性能优化

Unity LoopScrollRect循环滚动列表:原理、实战与性能优化

1. 项目概述:为什么你的滚动列表会卡? 做移动端或者内容密集的UI界面,滚动列表(Scroll View)几乎是绕不开的组件。Unity自带的ScrollRect用起来简单,但一旦列表项(Item)数量上去&…

2026/8/4 14:01:09 阅读更多 →

最新新闻

自进化智能体|自演化智能体综述

自进化智能体|自演化智能体综述

🌞欢迎来到人工智能的世界 🌈博客主页:卿云阁 💌欢迎关注🎉点赞👍收藏⭐️留言📝 📆首发时间:🌹2026年7月30日🌹 ✉️希望可以和大家一起完成进阶…

2026/8/4 14:56:35 阅读更多 →
NX/UG二次开发实战:基于特征遍历的孔特征自动查找与参数提取

NX/UG二次开发实战:基于特征遍历的孔特征自动查找与参数提取

1. 项目概述:为什么我们需要在NX/UG中查找孔特征?在机械设计、模具制造、工装夹具设计这些行当里,NX(或者大家更习惯叫它UG)几乎是绕不开的工具。图纸画完了,模型建好了,接下来就是加工和出图。…

2026/8/4 14:56:35 阅读更多 →
Windows Server 2008 R2打印服务器部署与客户端批量安装实战指南

Windows Server 2008 R2打印服务器部署与客户端批量安装实战指南

1. 项目概述与核心价值最近在整理公司内部IT基础设施时,接手了一个老项目的迁移和标准化任务:将分散在各个部门同事电脑上的本地打印机,集中迁移到一台专用的打印服务器上进行统一管理。这个需求在很多中小型办公室或对办公设备有集中管控要求…

2026/8/4 14:56:35 阅读更多 →
Oracle数据库与PL/SQL Developer完整部署指南:从安装到汉化

Oracle数据库与PL/SQL Developer完整部署指南:从安装到汉化

1. 从零到一:Oracle数据库与PL/SQL Developer的完整部署蓝图如果你是一名刚接触企业级数据库的开发者或运维,或者正准备从MySQL、SQL Server迁移到更重量级的平台,那么Oracle数据库和PL/SQL Developer这对黄金组合,大概率是你绕不…

2026/8/4 14:56:35 阅读更多 →
Windows上的终极Android应用安装器:APK Installer完整指南

Windows上的终极Android应用安装器:APK Installer完整指南

Windows上的终极Android应用安装器:APK Installer完整指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 还在为Windows电脑无法直接安装Android应用而烦恼…

2026/8/4 14:56:35 阅读更多 →
2026最权威的五大降重复率方案解析与推荐

2026最权威的五大降重复率方案解析与推荐

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek AI写作的工具会变成做内容创作的人、学生以及在职场劳作的人的, 用来提高效率的关键助手, 这…

2026/8/4 14:55:35 阅读更多 →

日新闻

AI Agent白手起家26: 使用标准事件驱动大模型实践

AI Agent白手起家26: 使用标准事件驱动大模型实践

纲要 练习目标:掌握大模型标准事件的调用回顾 LangChain 中的核心标准事件 invokestreambatchastream_eventswith_structured_output 环境准备实战代码:多种事件调用对比 同步调用与流式输出批量处理异步事件流监听结构化输出 运行说明与预期结果总结与扩…

2026/8/4 0:00:40 阅读更多 →
dealsea是什么?跨境卖家必知的美国deal站入门指南

dealsea是什么?跨境卖家必知的美国deal站入门指南

说实话,第一次听说美国这个老牌折扣网站的跨境卖家,十个有八个会问同一个问题:这个平台到底是干嘛的?我见过一个做家居出口的朋友,他在亚马逊上月销二十万美金,却从来没用过它。我给他看了首页——一屏一屏…

2026/8/4 0:01:40 阅读更多 →
清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

通讯作者:邓兵、刘建国通讯单位:清华大学DOI:https://doi.org/10.1021/acs.est.6c00603研究背景稀土元素(REEs)是清洁能源技术与电子器件不可或缺的核心原料,然而传统提取方式依赖能耗高、排放大的采矿与强…

2026/8/4 0:01:40 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/4 13:24:41 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/4 11:41:39 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/4 5:26:40 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/4 13:38:24 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/4 13:38:40 阅读更多 →