melonJS

a fresh, modern & lightweight HTML5 game engine

MIT License

Downloads
996
Stars
5.7K
Committers
82

Bot releases are visible (Hide)

melonJS - v10.5.2

Published by obiot over 2 years ago

Fixed

  • WebGL: fix shader attribute for the projection matrix not being properly updated when using the flex scaling mode
melonJS - v10.5.1

Published by obiot over 2 years ago

Fixed

  • Renderer: fix a regression when zooming the canvas in WebGL mode
  • TypeScript : fix definition of the base Renderable class
melonJS - v10.5.0

Published by obiot over 2 years ago

Changed

  • Physic: set collision shapes as static by default (those should be fixed anyway)
  • Renderable : refactor of Draggable and DropTarget base objects

Fixed

  • Physic: fix improper behavior for static bodies responding to collisions (thanks @dynamo-foundation)
  • Physic: static bodies are now properly filtered out if within the same node or overlapping
  • Renderable : fix a me.Sprite bug when reusing the same image/texture with different frame width/height (thanks @dynamo-foundation)
melonJS - v10.4.0

Published by obiot over 2 years ago

Added

  • Renderable : containers now define a backgroundColor property allowing to defined a background color for a specific container
  • Renderable : new inset[x/y] property setting allowing to define the size of a corner for NineSliceSprite (thanks @dynamo-foundation)

Changed

  • Renderer: the video.renderer.Texture class is now directly exported (and available) as TextureAtlas

Fixed

  • TypeScript : fix all typings and other issues with the typescript definition file (now with 0 warnings and linting errors)
  • Input : fix a regression (undefined error) with the releasePointerEvent method (thanks @siauderman)
melonJS - v10.3.0

Published by obiot over 2 years ago

Added

  • TMX: melonJS will now throw an error if collision polygons defined in Tiled are not forming a convex shape
  • WebGL : vertex element and buffer size are now dynamically calculated based on attribute definition

Changed

  • WebGL : switch from drawElements to drawArrays when drawing quads
  • WebGL : optimize ColorLayer rendering and clearRect method by using clipRect & clearColor instead of drawing primitives
  • Device : modernize the pointerLock implementation (2.0 specs) and moved it under me.input

Fixed

  • Renderable : properly delete me.Text cache WebGL texture upon deactivation (if created)
  • WebGL : Optimize vertex buffer allocated size following tint color packing into Uint32
  • Device : fix pointerLock feature detection
melonJS - v10.2.3

Published by obiot almost 3 years ago

Fixed

  • Core: fix a regression with the quadtree implementation and non floating objects
  • Preloader: optimize defined cache canvas size in the default loading screen when using WebGL2
melonJS - v10.2.2

Published by obiot almost 3 years ago

Added

  • Renderable: new isFloating getter returning true if the renderable is a floating object or contained in a floating container

Fixed

  • TypeScript: fix most of method parameters and return type declaration when applicable
  • Input: fix an issue with pointer event detection on nested floating items
melonJS - v10.2.0

Published by obiot almost 3 years ago

Added

  • Bounds: faster condition assessment for the overlaps method
  • Renderable: added a basic NineSliceSprite renderable object
  • Renderable: new offScreenCanvas option for me.Text allowing to use an individual offscreen canvas texture per text element

Fixed

  • Input: fix a regression with me.input.pointer not being updated on pointer events
  • Loader: fix a "double initialization and double reset" bug with the default loading screen
melonJS - v10.1.1

Published by obiot almost 3 years ago

Fixed

  • documentation: add missing pages for Container and World object
  • Renderable: also flag as "dirty" when changing opacity, or when viewport change is triggering an ImageLayer update
melonJS - v10.1.0

Published by obiot almost 3 years ago

Changed

  • Input: refactor me.Pointer by extending me.Bounds instead of me.Rect (simplify implementation and memory usage when using pointer Event)
  • WebGL: refactor/simplify the WebGLCompositor implementation to be more generic
  • WebGL: prevent temporary Array Buffer Allocation when using WebGL2
  • WebGL: tint color are now packed into Uint32 before passing them to the Vertex Shader
  • Device: replace use of deprecated onorientationchange() event listener by the standard ScreenOrientation one

Fixed

  • Input: fix a regression, throwing an undefined property exception, when accessing me.input.pointer before registering on any events (thanks @kkeiper1103)
  • WebGL: fix initial declaration of the WebGLVersion property
melonJS - v10.0.2

Published by obiot almost 3 years ago

Fixed

  • Documentation: fix missing class definition after the 10.0.0 release
melonJS - v10.0.1

Published by obiot almost 3 years ago

Fixed

  • Physic: fix a regression (crash) with undefined reference in the minified ES6 module
melonJS - v10.0.0

Published by obiot almost 3 years ago

Added

  • melonJS is now a pure ES6 library, for class definition, inheritance and semantic
  • melonJS now includes typescript definition for the ESM melonjs.module bundle (thanks @qpwo)
  • Core : new me.event.BOOT event that will be triggered when melonJS is initialized
  • Physic : physic bodies can now be configured as static bodies (which do not move automatically and do not check for collision with others)
  • Event : new system events at the beginning and end of both the update and draw "loop"

Changed

  • Jay Inheritance has been replaced with ES6 standard inheritance
  • Core : object using the pooling function must now implement a onResetEvent method and use the recycling flag when registered
  • Core : manually pushing a non recyclable object into the object pool will now throw an exception instead of silently failing
  • Physic : physic body update and collision check is now automatically done through the world simulation update loop
  • Physic : fixed gravitational acceleration (thanks @neilsf)
  • Event: minPubSub event based implementation has been replaced by a nodeJS event emitter based implementation
  • Renderable: calling flipX/Y() without argument will now flip the renderable as expected

Deprecated

  • all deprecated API from the legacy melonJS version have been removed

Fixed

  • Renderer: fix the stencil masking feature on renderable components (for both WebGL and Canvas mode)
  • Loader: fix a graphic glitch in the default preloading screen
melonJS - v9.1.2

Published by obiot about 3 years ago

https://github.com/melonjs/melonJS/wiki/Upgrade-Guide#80x-to-91x-stable

Fixed

  • fix a regression with state pause & resume when losing & gaining window focus
  • remove duplicated translate method for basic shapes and add missing shift method to Polygon
melonJS - v9.1.0

Published by obiot about 3 years ago

[9.1.0] - 2021-09-26

Added

  • Renderable : simplify ImageLayer implementation by extending Sprite object
  • TMX : add missing tinting support for Image Layers (was added "only" for Tiled Layer in 9.0.0)
  • TMX : add support for the new Tiled Parallax Layers x and y ratio properties

Fixed

  • TMX : fix a regression with Parallax scrolling ratio
melonJS - v9.1.1

Published by obiot about 3 years ago

[9.1.1] - 2021-09-26

Fixed

  • Renderable : fix the error message in me.Sprite on undefined image/texture source
melonJS - melonJS 9.0.2

Published by obiot about 3 years ago

  • Audio : Howler audio core update (2.2.3)
  • Core : overall code rewrite to comply with ES6 module and class semantic (at the exception of #1021)
  • Core : melonJS build process now automatically output one ES5 umd "legacy" bundle, and one pure ES6 module
  • Core : the "legacy" es5 umd bundle is now automatically transpiled (from ES6 to ES5) using rollup and bubble
  • Core : internal rewrite on object bound implementation, with all Renderable now fully using/relying on the me.Bounds object introduced in last version
  • Container : Unified bound management between Container and Renderable (Container now follow its parent Renderable implementation)
  • Container : Containers defines an additional enableChildBoundsUpdate flag to enable full bounds update, including child bounds (disabled by default)
  • Entity : me.CollectableEntity is now deprecated and replaced by a more generic me.Collectable base object that do not extend me.Entity anymore
  • Entity : me.LevelEntity is now deprecated and replaced by a more generic me.Trigger objects that do not extend me.Entity anymore
  • Math : add missing applyInverse() method to the Matrix3d implementation
  • Math : fix Matrix3d translate method when passing a 2d vector as argument
  • Renderable : fix Renderables bounds not correctly respecting the anchor point.
  • Renderer : WebGL2 is now the default mode when using the WebGL renderer (use preferWebGL1 = true calling me.video.init if you need to force WebGL1)
  • Tiled : add TMX tintcolor parsing for tile and object layers
  • Stage : me.Stage constructor now accept new argument properties to specify the onResetEvent and onDestroyEvent functions
  • Stage : fix a crash with legacy API when using the deprecated me.ScreenObject object
  • TMX : fix crash when trying to add collisionType to text nodes (thanks @framp)
  • TMX : fix a regression with the Tile Layer preRender feature
  • TMX : fix tile properties import for the new Tiled JSON format (thanks @3ck0o)
  • TMX : "unnamed" object in Tiled will now instantiate base Renderable object (with a physic body) rather than an "sprite-less" Entity object
  • Tween: allow to pass a set of tween properties to the '.to' method instead of just the duration (thanks @0xf0f0f0)
melonJS - melonJS 8.0.1

Published by obiot about 4 years ago

8.0.0 release fix for NPM and jsDeliver, see https://github.com/melonjs/melonJS/releases/tag/8.0.0

melonJS - melonJS 8.0.0

Published by obiot about 4 years ago

  • Audio : audio core update (2.2.0)
  • Audio : me.audio.stop() will now stop all sounds if none is specified
  • Color : new lerp() method to provide linear interpolation between two different colors
  • Color : allow specifying minimum and maximum value range when generating random colors
  • Core : new me.event.VIDEO_INIT system event that will be triggered once the display canvas is initialized
  • Core : a default stage is now instantiated at boot time, allowing to more easily write basic examples to test features
  • Input : improved input detection when the canvas is embedded into a complex css layout and the page is being scrolled up/down
  • Input : Changed the device accelerometer and orientation detection to comply with the latest API changes where a user permission is now required
  • Input : fix an issue with uncorrect horizontal delta value for wheel event
  • Input : all registered events for a specific renderable are now automatically released upon the object destruction
  • Physic : me.game.world is now a specific container (based on me.Container) that will hold and manage all related physic updates
  • Physic : gravity for physic bodies is now defined globally under me.game.world.gravity, and can be scaled individually using me.Body.gravityScale
  • Physic : added a rotate method to me.Body to allow rotating all the body shapes properly (by default around the body bounding box center)
  • Physic : melonJS will now automatically enable body physic when when a me.Body object is added to any renderable
  • Renderable : add support for free-texture-packer (http://free-tex-packer.com), the free Texture Packer alternative (thanks @PLAYERKILLERS)
  • Renderable : optimized and tidied up me.Text and me.BitmapText implementation
  • Renderable : new isFlippedX & isFlippedY getter to check the current renderable "flip" state
  • Renderable : fix implementation and usage of the isDirty flag across Renderables
  • Renderable : fix a regression with transformation when a renderable is directly added to a me.Container object
  • Renderable : apply a tint color to BitmapText if a fillStyle is specified in the constructor
  • Renderer : new optional parameter for createCanvas() to request an OffScreenCanvas if supported by the browser
  • Renderer : use OffscreenCanvas by default for all secondary canvas (e.g. debugPanel, double buffering, font texture in WebGL)
  • Renderer : properly fallback to the Canvas Renderer including when the WebGL renderer is not able to compile the built-in shaders
  • Renderer : dynamically activate WebGL texture sampler instead of pre-indexing them (accordingly to GLSL 1.30 specifications and later)
  • Renderer : added support for WebGL2 (disabled by default, use preferWebGL1 = false to enable it when calling me.video.init)
  • Renderer : enable use of NPOT textures when in WebGL2 mode for texture mapping and pattern drawing
  • Renderer : allow specifying the default powerPreference value for the WebGL Renderer (on Safari and Chrome 80+ default is now low-power)
  • Renderer : display GPU information in the console when available (WebGL)
  • Renderer : implemented sprite tint support for the Canvas Renderer
  • Shapes : vectors and shapes can now be rotated around a given (optional) point instead of the default origin point
  • Shapes : added a center vector property for me.Rect, giving the center point of the rectangle
  • TMX : fix parsing of tileset image when the "last" tile spacing was truncated
  • TMX : fix staggered map rendering, where computed tiles coordinates were non integer values (thanks @siauderman)
  • TMX : fix parsing of animated tile with the latest version of Tiled (thanks @alcor)
  • TMX : fix anti-diagonal tile flipping (thanks @alcor)
  • TMX : fix world bounds not being updated if a level is added manually using addTo (thanks @siauderman)
  • Video : fix an issue when using the "flex" scaling mode, and where the reported parent container size could be floating values
  • Video : the scale parameter is now optional if scaleMethod is specified (auto-scaling will then automatically be enabled)
melonJS - melonJS 7.1.1

Published by obiot about 5 years ago

  • Core : fix a crash when a game reset is triggered manually before any default stage has been defined
  • Core : new option to automatically change to a newly define stage
  • Input : fixed a regression with gamepad polling
  • Renderer : fixed an issue where a failed attempt at creating a WebGL context would then prevent from creating a canvas context as fallback
Package Rankings
Top 11.32% on Bower.io
Top 2.63% on Npmjs.org
Badges
Extracted from project README
Build Size Tree-shaking NPM Package jsDeliver Boss Bounty Badge Contributor Covenant Free Texture Packer TexturePacker PhysicsEditor ShoeBox Tiled Cordova Spine aseprite Melon Gaming Altbyte Pte Ltd
Related Projects