本页目录

MagicTaleScript:手写 TypeScript 引擎的微信小游戏

MagicTaleScript · seak123/MagicTaleScript

MagicTaleScript 是一个用 TypeScript 手写引擎框架开发的微信小游戏项目,仓库标签涵盖游戏开发、游戏引擎与微信小游戏。README 摘录主要介绍 Oxygine 这一 C++ 2D 移动游戏引擎的构建方式、平台支持与示例代码,与项目本身的玩法、功能...

其他 自研引擎 C++ 粒子系统 动画系统 UI 系统 渲染技术 中级
★ Stars 815 Forks 173 License 未明确 更新 2026-09-14

国内开发环境适配

Windows
官方声明支持
Linux
官方声明支持
macOS
官方声明支持
引擎 / 框架:自研引擎 暂无中文教程标记 未标记站长实测
待核验:README 未提及国内网络或依赖源的特殊配置;构建时可能需要访问 GitHub 获取源码与 Wiki,建议按 readme 文件夹说明准备各平台工具链。

中文项目介绍

Oxygine 是一个用 C++ 编写的 2D 游戏引擎与框架,面向 iOS、Android、Windows、Linux、macOS 以及通过 Emscripten 构建的网页平台。README 将其定位为“围绕 OpenGL/D3D API 的又一层外壳”?不,它更准确地说是一组用于按需构建游戏的类与工具集合。引擎以场景图(scene graph)为基础,设计思路类似 Flash,但作者称其更舒适、速度更快。项目最初为移动平台(iOS、Android)开发,也可用于 PC 游戏。源码以 MIT 许可证开放,可免费用于任何场景。

SDK 包含源码与库、必要的工具与文档、示例,以及用于测试和演示基础功能的 Demo。各平台的构建与运行说明位于仓库的 oxygine-framework/readme/ 文件夹,更多资料可查阅 GitHub Wiki。

核心功能

语言与渲染

使用 C++ 编程,渲染基于 OpenGL(ES) 2.0,并支持自定义着色器。

纹理与资源

支持压缩纹理;资源描述存放在 XML 文件中,可配置多种参数,例如自定义资源类型、纹理(图集)在内存中的存储格式、动画的行列数等,任意资源还可携带用户数据属性。

场景图与内存管理

场景图在继承模型上类似 Flash,基于智能指针(类似 boost::intrusive_ptr)构建,减少手动内存控制与内存泄漏的负担。

组件化与低耦合

采用基于组件的系统,提供简单可预测的 OOP API,支持继承类并重载行为;引擎各组件之间链接较弱,可组合使用、单独使用或完全不用。没有全局“大管理器”强制规定代码编写方式。

对象池

所有引擎对象通过内存池实现快速创建与删除。

调试工具

提供 Tree Inspector(场景图的“可视化分析器”,可在游戏中查看图与不同分支以分析和排查错误)与 Textures Inspector(显示当前加载到内存中的纹理)。

渲染到纹理

支持 render to texture。

补间动画

提供用于逐帧动画、颜色、位置、旋转等的 Tween,也可轻松创建自定义 Tween。

UI 组件

内置游戏中常用的基础 UI 组件,如 Button、Sprite、ProgressBar 等。

技术架构分析

如何构建与运行

README 未展开各平台的具体构建命令,仅指向 oxygine-framework/readme/ 文件夹,其中包含在不同平台上构建和运行 Oxygine 的说明。更多资料可查阅 GitHub Wiki。

补充说明

代码示例

README 给出了一段简短示例,展示创建精灵、添加到舞台、运行动画与位置 Tween,以及处理点击事件:

//create sprite and display it
spSprite sprite = new Sprite();
sprite->attachTo(getStage());

//run animation tween
sprite->addTween(Sprite::TweenAnim(gameResources.getResAnim("anim2")), duration, loops);

//run position tween
sprite->addTween(Sprite::TweenPosition(x, y), duration, loops);

//handle click event
sprite->addEventListener(TouchEvent::CLICK, [sprite](Event*){
    log::messageln("clicked to sprite!");
    //change sprite color
    sprite->setColor(Color::Gray);
});

支持平台

README 列出的支持平台包括:Android、iOS、Windows、MacOSX、Emscripten(web)。构建与运行的具体步骤请参考 oxygine-framework/readme/ 文件夹中的说明。

学习建议

  • 先阅读 Wiki 与 readme 文件夹中的平台构建说明,确保开发环境就绪。
  • 从 SDK 自带的示例与 Demo 入手,理解场景图、资源加载、Tween 与事件处理的基本用法。
  • 结合代码示例尝试创建精灵、添加 Tween、监听点击事件,逐步熟悉组件化 API 与资源 XML 配置。
  • 需要深入时,可研究调试工具(Tree Inspector、Textures Inspector)与资源处理工具,以优化资源与排查问题。

开源许可证与版权说明

许可证标识:未明确。源码、资源与依赖许可可能不同,请以官方仓库为准。本站仅做索引,不托管源码。

相似项目