fn main {
let config = @moonphaserkit.GameConfig::new(parent="game")
ignore(@moonphaserkit.Game::create(
config,
scene => scene.load_image(@moonphaserkit.ImageAsset::new("player", "/assets/player.svg")),
scene => {
let player = scene.add_sprite(120.0, 220.0, "player")
player.apply_options(@moonphaserkit.SpriteOptions::new(collide_world_bounds=true))
},
_scene => (),
))
}
MoonPhaserKit
MoonPhaserKit 是一个面向 MoonBit JavaScript 后端的 Phaser 3 轻量绑定包,目标是让开发者用 MoonBit 编写 2D 网页游戏核心逻辑,并复用 Phaser 成熟的浏览器运行时。
项目为 2026 MoonBit 国产基础软件生态开源大赛准备。它的重点不是“做一个小游戏”,而是补齐 MoonBit Web 游戏生态中的 2D 游戏开发绑定能力;示例游戏 Moon Jumper 用于验证和展示绑定链路。
项目状态
3.90.0。安装
发布到 Mooncakes 后可使用:
本地开发和检查:
最小示例
宿主网页需要先加载 Phaser 3,并在运行 MoonBit JavaScript 产物前暴露
globalThis.Phaser。运行 Demo
示例游戏名为 Moon Jumper,是一个平台跳跃收集小游戏。游戏逻辑由 MoonBit 编写,网页宿主由 Vite 和 Phaser 提供,素材为自制 SVG。
如果本机没有把 MoonBit 工具链加入 PATH,请先设置
MOON_HOME。PowerShell 示例:打开 Vite 输出的本地地址后,使用方向键左、右、上进行移动和跳跃。
API 概览
GameConfigGameSceneSpriteTextCursorKeys/KeyColliderArcadeBody设计边界
MoonPhaserKit v1 不试图完整复刻 Phaser 的 JavaScript API,而是聚焦一条小型 2D 网页游戏的完整链路:创建游戏、加载素材、创建对象、处理输入、设置物理属性、注册碰撞回调、更新文字和销毁对象。
这种克制的范围让 API 更容易学习、测试和展示,也更适合作为 MoonBit Web 游戏生态的基础包起点。
工程质量
项目包含:
比赛提交说明
提交申报前请完成:
moon.mod中的repository替换为真实公开仓库地址。moon publish。