跨平台游戏引擎 Axmol-2.9.0 发布

Axmol 2.9.0 版本是一个以错误修复和功能改进为主的次要 LTS 长期支持版本,发布时间: 2025 年 10 月 5 日

🙏感谢所有对 axmol 项目的贡献者,包括财务赞助者:@scorewarrior(公司)、@peterkharitonov、@duong、@thienphuoc、@bingsoo、@asnagni 以及 历史赞助者

🙏我们衷心感谢 @scorewarrior(公司) 的鼎力支持------他们在 GitHub Sponsors 追加了每月 2,000 的赞助金额,并在此之前已通过 Open Source Collective 持续每月赞助 3,000。你们的慷慨帮助 Axmol 项目不断繁荣与成长。

仓库地址

与 2.8.x 相比的重要变化:

3D 音频与基础效果

  • 由 @rh101 在 #2719 中添加音频声像(panning)支持
  • 由 @rh101 在 #2740 中添加在 3D 空间任意位置播放音频的支持
  • 由 @rh101 在 #2772 中初步实现使用 OpenAL 添加音频效果与滤波器的支持
  • 由 @rh101 在 #2779 中修复混响属性值

其他变化

  • 由 @halx99 在 #2784 中为移动设备添加屏幕方向控制
  • 由 @halx99 在 #2735 中添加新 API EventKeyboard::isRepeat
  • 由 @halx99 添加新 API ZipFile::createWithData 并将 ZipFile::createWithBuffer 标记为弃用
  • 由 @halx99 增强 Base64 解码器以跳过空白/换行并防止过早终止
  • 由 @halx99 在 #2792 中添加 Device::resolveOrientation 并精简分辨率逻辑

Bug 修复

  • 由 @halx99 在 #2704 中修复 ui::MediaPlayer 在 Apple 平台可能崩溃的问题
  • 由 @paulocoutinhox 在 #2713 中修复 AAB 构建中偶尔缺失 Android 资源的问题
  • 由 @rh101 在 #2749 中修复日志调用中的格式说明符
  • 由 @halx99 在 #2802 中修复在场景切换期间重置 director 时的崩溃问题

改进

  • 由 @halx99 在 #2805 中为 Http 添加 setDataCallback 以支持流式数据
  • 由 @halx99 在 #2791#2795 中改进 iOS EditBox 在键盘显示时的方向处理
  • 由 @rh101 在 #2793 中添加从场景堆栈中提取前一个场景的支持
  • 由 @halx99 在销毁 _scheduler 前销毁 ScriptEngine 实例以尊重依赖关系
  • 由 @halx99 修复 SpineTest 瞄准 y 轴问题
  • 由 @halx99 在引擎中用新 API 替换已弃用调用
  • 由 @aismann 在 #2731 中更新 controller.cpp:将 "Audio - NewAudioEngine" 重命名为 "AudioEngine"
  • 由 @halx99 修复 lua-tests 中的若干非关键问题
  • 由 @halx99 从模板 cmake 模块中移除不存在的 yaml-cpp
  • 由 @halx99 移除 CI pull-request 触发事件:ready_for_review
  • 由 @halx99 更新 kcp 以解决 cmake 错误
  • 由 @halx99 在 iOS 上的 layoutSubviews 时派发 applicationScreenSizeChanged
  • 由 @halx99 将 iOS 内部类 EARenderView 重命名为 RenderHostView
  • 由 @rh101 在 #2799 中使 Director::getRunningScene() 在从 Node::onEnter() 调用时对任何类型的场景切换返回预期结果

SDK 和工具更新

  • webview2: 1.0.3405.78 => 1.0.3485.44

三方库更新

  • curl: 8.15.0 => 8.16.0
  • freetype: 2.13.3 => 2.14.1
  • jpeg-turbo: 3.1.1 => 3.1.2
  • luajit: 2.1-f9140a6 => 2.1-871db2c

发布文件 MD5 校验值

  • axmol-2.9.0.zip: 0100b8b0a73d25b0fb020590fc2e8a54
  • axmol-bs-2.9.0.zip: 114afdb56e2f507c831163e6cd6385e8

下载

GitHub

国内用户可尝试复制链接使用迅雷下载

百度网盘

SourceForge

Axmol-2.9.0

本版亮点详解

新增 API:ZipFile::createWithData

原因

现有的 API ZipFile::createWithBuffer 存在设计缺陷。它接受一个 const char* 缓冲区参数,但没有明确说明所有权,这使得该 API 依赖于外部缓冲区的生命周期。这可能导致未定义行为以及难以排查的错误。

改进

新的 API ZipFile::createWithData 接受一个 Data 对象作为参数。由于 Data 支持移动语义,所有权和生命周期更加明确。这确保了更安全的使用方式,降低了误用风险,并为开发者提供更可预测的行为。


为移动设备添加屏幕方向控制

原因

此前,屏幕方向只能通过平台设置静态配置

(例如 iOS 的 info.plist 或 Android 的 AndroidManifest.xml)。这种方式灵活性有限,

因为一旦应用启动,渲染方向就无法在运行时更改。

改进

引入了新的核心 API Device::setPreferredOrientation

  • 当在 info.plist(iOS)或 AndroidManifest.xml(Android)中已声明支持的方向时,
    该 API 允许在运行时动态修改渲染方向。
  • 开发者现在可以通过编程方式在竖屏和横屏模式之间切换,
    以适应游戏玩法、UI 流程或用户偏好。

收益

  • 一致的跨平台方向处理。
  • 无需平台特定代码即可动态调整方向。
  • 在运行时无缝适配渲染方向,提升用户体验。

开发者注意

引擎内部仅执行基础适配

仍建议开发者在 AppDelegate::applicationScreenSizeChanged 中自行处理分辨率和布局调整策略,

以确保在不同设备和方向下的正确缩放和 UI 行为。

相关推荐
郑寿昌1 小时前
UE5与UE6在Lumen和Nanite的差异解析
游戏引擎·图形渲染·着色器
郑寿昌11 小时前
UE6 AI加速Lumen光线追踪降噪技术解析
人工智能·游戏引擎
晴夏。12 小时前
GAS下的网络同步的全面分析【超级全面】
游戏引擎·ue·gas·网络同步
田鸡_12 小时前
Unity新输入系统(Input System)教学篇
unity·游戏引擎·游戏程序
EQ-雪梨蛋花汤12 小时前
【Unity笔记】Unity 音游模板与免费资源:高效构建节奏游戏开发全指南
笔记·unity·游戏引擎
微莱羽墨12 小时前
零、0基础入门Unity 安装详细教程(2026最新版教程,安装Unity看这一篇就够了!)
unity·游戏引擎·unity安装
nnsix13 小时前
Unity 刚体的 默认力、瞬时力 区别
unity·游戏引擎
nnsix13 小时前
Unity Sprite的 Generate Physics Shape 参数解释
unity·游戏引擎
魔士于安13 小时前
Unity完整小球迷宫项目
前端·unity·游戏引擎·贴图·模型
め.13 小时前
Unity协程的原理
unity·游戏引擎