Skip to content

v18.2.0

Choose a tag to compare

@github-actions github-actions released this 29 Mar 10:26
· 176 commits to master since this release
37eaf7f

What's New in melonJS 18.2.0

New Features

  • Multi-camera support — stages can now have multiple cameras for split-screen, minimaps, and multi-viewport layouts
  • Extensible batcher system — custom Batcher subclasses with configurable maxVertices, indexed drawing (settings.indexed), and custom projection uniform names (settings.projectionUniform)
  • Tiled 1.8–1.12 full support — oblique maps, capsule shapes, list properties, embedded base64 images, tile sub-rectangles, tilerendersize/fillmode, layer blend modes, per-object opacity/visibility, repeatx/repeaty, parallaxoriginx/parallaxoriginy, class-type properties, isCollection flag
  • RoundRect as collision shape — can now be used for SAT collision via polygon-approximated rounded corners
  • Expanded blend modes — Canvas: overlay, darken, lighten, color-dodge, color-burn, hard-light, soft-light, difference, exclusion; WebGL2: darken, lighten via gl.MIN/gl.MAX

Changed

  • TypeScript — converted plugin, camera, particles emitter, state, audio, application, input, UI, and pointer modules to TypeScript
  • CDN URLs — README now uses cdn.jsdelivr.net instead of esm.run (which is still in beta)

Bug Fixes

  • WebGLRenderersetBatcher() now rebinds the shared vertex buffer when switching batchers, allowing custom batchers with their own GL buffers
  • WebGLRenderersetBlendMode() now accepts a premultipliedAlpha parameter for correct blending with non-premultiplied textures
  • Renderer — add base setBlendMode() and GPURenderer property to fix TypeScript casts
  • Pluginplugin.register() now uses pluginClass.name for reliable name derivation
  • TMXTileset — fix animation key using first frame tile ID instead of the tile's own ID
  • CanvasRenderer — replace bezier ellipse approximation with native context.ellipse() (with polyfill)
  • Plugin — fix plugin.get() throwing TypeError when searching by name with no match
  • Events — fix duplicate BLUR entry (was missing FOCUS)
  • UIBaseElement — fix isDraggable JSDoc and released default
  • Application — fix constructor options not being optional, fix getUriFragment() unsafe cast
  • CanvasRenderersetProjection() now properly applies the projection matrix as a canvas 2D transform

Spine Plugin

  • @melonjs/spine-plugin migrated into the monorepo — custom SpineBatcher with two-color tinting, indexed drawing, expanded example with 17 official Spine characters