melonJS 2 - 全新轻量级 2D 开源游戏引擎,采用现代化构建

简介: 介绍一个采用 ES6 重建的开源前端游戏框架。

melonJS 2melonJS 游戏引擎的现代版本。它几乎完全使用了 ES6 的类、继承等特性进行了重建,并使用 Rollup 打包以提供现代功能,例如转译和 tree-shaking

melonJS 是开源的,在 MIT License 下获得许可,并在新加坡 AltByte 的一小群爱好者的帮助下积极开发和维护。

介绍

这是一个功能齐全的游戏引擎:

兼容性

  • 独立库(不依赖于其他任何东西,除了支持 HTML5 的浏览器)
  • 兼容所有主流浏览器(ChromeSafariFirefoxOperaEdge)和移动设备

图形

  • 基于 2D sprite 的图形引擎
  • 用于桌面和移动设备的快速 WebGL 12 渲染器,并可回退 Canvas 渲染
  • DPI 分辨率和 Canvas 高级自动缩放
  • 具有 9 切片缩放选项和动画管理的 Sprite
  • 内置效果,例如着色和遮罩
  • 标准精灵表,支持单个和多个打包纹理
  • 系统和位图文本

声音

物理引擎

  • 基于多边形 (SAT) 的碰撞算法,用于准确检测和响应
  • 使用空间分区的快速宽相碰撞检测
  • 用于优化自动碰撞检测的碰撞过滤

输入

  • 鼠标和触摸设备支持(使用鼠标仿真)
  • 设备运动和加速度计支持

关卡编辑器

  • 平铺地图格式版本 +1.0 集成,便于关卡设计

    • 未压缩的普通、Base64CSVJSON 编码的 XML 瓦片地图加载
    • 正交、等距和六边形地图(正常和交错)
    • 多层(多个背景/前景、碰撞和图像层)
    • 动画和多个 Tileset 支持
    • 瓦片集透明度设置
    • 图层 alpha 和着色设置
    • 矩形、椭圆、多边形和折线对象支持
    • 平铺对象
    • 翻转和旋转的瓷砖
    • 动态层和对象/组排序
    • 动态实体加载
    • 基于形状的 Tile 碰撞支持

资源

  • 异步资源加载
  • 完全可定制的预加载器

其他

  • 状态管理器(轻松管理加载、菜单、选项、游戏内状态)
  • 补间效果,过渡效果
  • 支持对象回收的池化
  • 基本粒子系统
  • 基于 nodeJS EventEmitter 的事件系统

基于 ES6 和 Webpack 创建项目

可以使用 官方 ES6 样板,它包含了:

确保已安装Node.js,克隆仓库于文件夹中并执行:

npm install

开始使用

  • npm run dev 在监听模式下启动开发服务器 localhost:9000
  • npm run buildpublic 文件夹中生成一个压缩的、生产就绪的构建包

如果一切顺利,在第一次运行开发服务器时,应该会看到:

样板-helloworld

目录结构

src
└── data
│    ├── bgm
│    ├── fnt
|    ├── img
|    ├── map
|    └── sfx
└── js
|    ├── renderables
|    └── stage
├── index.js
├── index.css
├── index.html
├── manifest.js
public
├── data
├── bundle.js
└── index.html
  • src

    • 游戏源代码的根文件夹
    • 入口文件是 index.js
    • index.cssindex.html 是可以自定义的默认模板
    • manifest.jsmelonJS 预加载的资源列表(这些不会被 webpack 自动导入和捆绑)
  • src/js:在此处添加您的源类
  • src/data: 添加游戏资源
  • public: 使用时将在其中复制/生成生产就绪的构建文件npm run build

演示

代码片段

更多示例可在此处查看,你可以通过修改一个完整 Demo 来开始创作游戏,官方也提供了一个比较简单的小教程教你如何开始。

基本的 Hello World 示例

import * as me from "https://esm.run/melonjs";

me.device.onReady(function () {
    // 当浏览器准备好时初始化一个场景
    if (!me.video.init(1218, 562, {parent : "screen", scale : "auto"})) {
        alert("Your browser does not support HTML5 canvas.");
        return;
    }

    // 默认添加一个灰色场景
    me.game.world.addChild(new me.ColorLayer("background", "#202020"));

    // 添加一个文字对象
    me.game.world.addChild(new me.Text(609, 281, {
        font: "Arial",
        size: 160,
        fillStyle: "#FFFFFF",
        textBaseline : "middle",
        textAlign : "center",
        text : "Hello World !"
    }));
});
在线API文档: http://melonjs.github.io/melonJS/docs/

Github仓库地址:https://github.com/melonjs/melonJS

相关文章
|
27天前
|
前端开发 开发工具 Android开发
移动应用开发的未来:跨平台工具与原生系统协同进化
随着移动互联网的蓬勃发展,移动应用已成为日常生活不可或缺的组成部分。本文深入探讨了移动应用开发领域的最新趋势,特别是跨平台开发工具的兴起以及它们如何与原生操作系统相互促进、共同发展。文章首先概述了移动应用开发的历史,然后详细分析了当前跨平台工具如Flutter、React Native等的优势和挑战,并探讨了这些工具对移动操作系统生态的潜在影响。最后,文章预测了未来移动应用开发可能的发展方向,以及开发者和企业在面对不断变化的技术环境时所需采取的策略。
25 8
|
28天前
|
Dart 前端开发 Android开发
移动应用开发中的跨平台解决方案探讨
在移动应用开发领域,随着安卓和iOS两大主流操作系统的不断发展,开发人员需要面对不同平台的兼容性和适配性挑战。本文将探讨如何利用跨平台解决方案来简化移动应用开发流程,提高开发效率,并分析不同跨平台技术的优劣势,为开发者提供指导性建议。
14 1
|
2月前
|
前端开发 NoSQL Java
全栈开发:构建高效的现代化应用程序
本文介绍了全栈开发的概念和重要性,探讨了前端、后端以及常用的编程语言(如Java、Python、C、PHP和Go)在全栈开发中的角色。通过深入剖析数据库的作用和选择,以及现代化应用程序的构建流程,读者将了解到如何利用全栈技术开发出高效、可靠的应用程序。
|
2天前
|
机器学习/深度学习 开发框架 前端开发
移动应用开发的未来:跨平台框架与原生系统之争
【4月更文挑战第17天】 在数字化时代的浪潮中,移动应用已成为连接用户与技术的桥梁。随着移动设备种类的多样化及用户需求的个性化,移动应用开发正面临着一场技术革新。本文将探讨当前移动应用开发的热点——跨平台开发框架与原生操作系统之间的竞争与协同,分析两者各自的优势、局限以及未来发展趋势,为开发者和企业提供深入见解。
|
4天前
|
开发框架 前端开发 Android开发
移动应用开发的未来:跨平台框架与原生系统的融合
【4月更文挑战第15天】 在移动应用开发领域,随着技术的不断进步和用户需求的多样化,跨平台开发框架和原生系统之间的界限正在逐渐模糊。本文探讨了如何通过结合跨平台框架的高效性和原生系统的高性能来构建未来的移动应用,同时分析了当前市场上流行的跨平台工具如Flutter和React Native,以及它们与传统移动操作系统iOS和Android的交互方式。进一步地,文章还讨论了这种融合对开发者社区、应用性能和用户体验所带来的影响。
10 1
|
5天前
|
弹性计算 Kubernetes 开发者
利用容器化技术实现跨平台部署的Web应用开发
本文将介绍如何利用容器化技术,例如Docker和Kubernetes,实现跨平台部署的Web应用开发。我们将探讨容器化的优势以及如何使用Docker容器打包应用程序,然后利用Kubernetes进行管理和部署。通过容器化技术,开发者可以更加便捷地进行Web应用的开发、测试和部署,提高开发效率和应用的可靠性。
|
8天前
|
开发框架 搜索推荐 API
移动应用开发的未来之路:跨平台框架与原生系统的融合
【4月更文挑战第12天】 随着移动互联网的飞速发展,移动应用(App)已成为人们日常生活和工作中不可或缺的部分。本文探讨了当前移动应用开发领域的新趋势——跨平台开发框架与原生操作系统之间的融合,并分析了这种融合如何影响开发者社区、用户体验以及未来移动应用的创新。通过概述跨平台技术的优势和挑战,以及原生系统的稳定性和性能,文章提出了一种理想的开发模式,以期为移动应用的未来发展提供指引。
|
20天前
|
开发框架 前端开发 JavaScript
移动应用开发的未来趋势:跨平台框架与原生系统整合
随着移动互联网的迅猛发展,移动应用已成为日常生活和商业活动中不可或缺的组成部分。本文将探讨移动应用开发领域的未来发展趋势,重点关注跨平台开发框架的兴起以及它们如何与原生移动操作系统进行整合。我们将分析Flutter、React Native等流行框架的技术特点,并讨论它们在提高开发效率、降低成本和优化用户体验方面的潜在优势。文章还将预测这些技术如何塑造未来移动应用开发的方向,为开发者和企业提供前瞻性的指导。
21 4
|
23天前
|
前端开发 Android开发 开发者
移动应用开发的未来:跨平台技术与原生系统的融合
随着移动互联网的蓬勃发展,移动应用已成为日常生活不可或缺的一部分。本文将深入探讨移动应用开发的新趋势——跨平台技术的崛起以及它与原生系统之间的融合。我们将分析当前市场上流行的跨平台框架,如React Native和Flutter,并讨论它们如何优化性能以匹敌原生应用。同时,我们也将着眼于移动操作系统的最新进展,特别是Android和iOS在兼容性、安全性和用户体验方面的创新。通过对未来技术趋势的预测,本文旨在为开发者和企业提供洞见,以便他们在不断变化的市场中保持竞争力。
|
26天前
|
开发框架 编解码 API
探索移动应用开发的未来:跨平台框架与原生系统协同进化
随着移动互联网的高速发展,移动应用(App)已成为人们日常生活不可或缺的组成部分。本文深入探讨了移动应用开发领域的最新趋势,特别是跨平台开发框架与原生操作系统之间的相互作用与融合。文章分析了当前移动应用开发的挑战和机遇,并展望了未来技术的发展方向。我们将重点讨论如何通过优化跨平台工具与深化对移动操作系统的理解,来提升移动应用的性能、安全性和用户体验。