MoonTetris

    Download zip
    Author
    Version
    0.1.0
    License
    MIT
    Last updated
    2 months ago
    Downloads
    17

    #MoonTetris

    License MoonBit

    MoonTetris 是一个完全由 MoonBit 语言编写、编译为 WebAssembly 并在 Web 端通过 Canvas 2D 渲染的高性能俄罗斯方块游戏。本项目探索并验证了 MoonBit 在无第三方游戏引擎依赖下直接驱动 Web 交互应用的生态潜力。

    #✨ 特性

    • 🎮 完整核心机制: 实现了严谨的 SRS (Super Rotation System) 旋转系统,包含所有经典的踢墙 (Wall Kick) 规则测试。
    • ⚡ 高性能 Wasm: 核心逻辑完全使用 MoonBit 编写,编译为极小、极快、内存安全的 WebAssembly 字节码。
    • 🎨 独立渲染层: 通过 FFI 直接操作 HTML5 Canvas API 进行绘制,无庞大依赖,启动速度极快。
    • 🧪 海量测试覆盖: 拥有超过 8000 行严密的单元测试,全面覆盖了每一块的位移、旋转和碰撞逻辑。

    #🚀 快速开始

    #环境依赖

    确保您已安装了 MoonBit CLI 工具链 以及 Python3(用于本地 HTTP 服务)。

    #编译

    克隆本项目后,使用 moon 命令将核心逻辑编译为 Wasm:
    moon build --target wasm

    如果您修改了源码,编译产物将会自动生成。您可以将编译出的 Wasm 文件拷贝到 web 目录下(如果尚未拷贝):
    cp _build/wasm/debug/build/src/src.wasm web/moon_tetris.wasm

    #运行

    进入 web 目录并启动本地静态服务器:
    cd web python -m http.server 8080
    然后打开浏览器访问:http://localhost:8080/index.html 即可开始游戏!

    #🕹️ 游戏控制

    • ← / → : 左右移动方块
    • ↑ : 顺时针旋转
    • ↓ : 软降(加速下落)
    • Space (空格) : 硬降(直接落地)
    • C : 暂存方块 (Hold)
    • Enter : Game Over 后重新开始游戏

    #🛠️ 测试与验证

    项目中包含了覆盖所有边界用例的核心逻辑测试。您可以通过以下命令运行测试套件:
    moon test
    所有测试均经过了严格校对,总计 8000 余行代码,可放心查阅 src/game_test.mbt 获取技术细节。

    #📜 许可证

    本项目采用 Apache 2.0 许可证开源。