跳过正文
  1. 项目/
  2. MonoGame 鸿蒙移植项目/

进度报告(2026-08-17):阶段 A 平台无关核心冲刺

·93 字·1 分钟·
FunBocchi
作者
FunBocchi
游戏引擎、图形编程爱好者。正在把 MonoGame 3.8.x 逐行移植为 C++20 并跑在鸿蒙上;也在做 Bocchi House 游戏移植平台与各种经典游戏的 HarmonyOS 移植。
目录
MonoGame 鸿蒙移植 - 这篇文章属于一个选集。
§ : 本文

本日里程碑
#

阶段 A(平台无关核心)完成——把不依赖任何平台 API 的引擎主体全部移植完毕。

完成内容
#

数学/几何/曲线/组件批
#

  • 数学库(Vector2/3/4/Matrix/Quaternion/Plane/MathHelper 等,含 MathHelper+Random 的 partial 整合)
  • 几何体(BoundingBox/BoundingFrustum/BoundingSphere/Ray)
  • 曲线(Curve/CurveKey)与组件(GameComponent/DrawableGameComponent 等)
  • PackedVector 19 个类型

Input/Content 核心
#

  • Input 状态类(Keyboard/Mouse/GamePad 等,TouchQueue 已就绪)
  • Content 核心(ContentManager/ContentReader 骨架)

Audio 主体(本日重点修正)
#

复查中发现 SoundEffect 族(5 个)实为平台无关主体(参数校验/时长计算/状态机/池管理纯 C#,仅 PlatformXxx 钩子待平台层)——此前遗漏未统计。补移植:

  • SoundEffect(构造校验/时长/静态音量/Play/池交互)
  • SoundEffectInstance(音量/音调/声像钳制/状态机/Apply3D)
  • SoundEffectInstancePool / DynamicSoundEffectInstance(缓冲队列/回调)
  • Microphone / AudioUtil(WAV 头格式化)

Platform 再核实(记录不移植原因)
#

  • .Default.cs 桩:全为 throw NotImplementedException 无逻辑 → 不移植
  • .Web.cs(KeyboardUtil/GamepadUtil):语义绑定 Web 浏览器 → 不移植
  • 其余平台文件绑定各自 SDK(鸿蒙用 NDK 重写)

验证升级
#

  • 32 cpp 编译 .o + 链接无未定义符号(此前 -fsyntax-only 漏过声明未定义缺陷,本日起强制链接级验证)
  • 123 个头文件独立包含编译零警告

下一步
#

  • 鸿蒙图形后端接口设计(B2 前置,以 MGG_* 清单为蓝本)→ 阶段 B 平台层
MonoGame 鸿蒙移植 - 这篇文章属于一个选集。
§ : 本文

相关文章

How_to_wr

·45 字·1 分钟