melonJS 4.1.0

@obiot obiot released this Jan 13, 2017 · 2 commits to master since this release

  • Audio : updated to latest Howler 2.0.2 (WebAudio resume/seek fixes, and IE related security issues)
  • Audio : added a function, to change or get the current position of a specific audio clip
  • Core : throw an error message when registering a non valid object in the object pool (i.e. undefined class)
  • Loader : added the possibility to configure path (baseUrl) by asset types.
  • Loader : added a 'crossOrigin' option to enable/allow cross-origin image loading for WebGL
  • Loader : fixed an issue where callbacks were randomly fired twice when refreshing the page (krojew)
  • Loader : reduced memory usage (reduced overlay size for the logo, and prevent from creating the Font overlay in WebGL)
  • Particles : fixed a (huge) performance regression with particle generation / handling
  • Pointer: fixed bug where a device allowing both mouse & touch events would only emit touch events.
  • Pointer: fixed a regression with multi-touch event detection on iOS & Android
  • Pointer: fixed a regression with callback handling & cleaning in the releasePointerEvent function
  • Renderable : fixed a regression in me.Sprite.isCurrentAnimation()
  • TMX : TMX maps and renderers are now fully contained in their own space, and do no pollute anymore
  • TMX : exposed the TMX renderers API and related utility functions to convert tile to/from pixel coordinates
  • TMX : improved API to manage isometric map & coordinates (e.g. vector and shape conversion)
  • TMX : added a simple isometric "tile selector" in the isometric map example
  • TMX : me.Layer.getTile() will now return null if there is no corresponding tile, instead of throwing an exception
  • TMX : added a getRenderer() function to me.Layer that returns the layer TMX renderer.
  • Viewport : added the possibility to define a global transformation to the viewport
  • WebGLRenderer : now properly complain when using NPOT textures, and throw an exception for repetitive ones
  • WebGLRenderer : does not create anymore a default overlay for me.Font drawing, unless required (reminder: me.Font+WebGL = Bad!)


melonJS 4.0.0

@obiot obiot released this Nov 28, 2016 · 81 commits to master since this release

  • Audio : updated to the latest Howler 2.0.1 version
  • Container : added a 'forEach' function that allows to iterate through all children
  • Core : largely improved and completed the matrix implementation and usage
  • Core : Object.assign polyfill update
  • Core : various improvements and fixes to jasmine test units
  • Debug : fixed the debug panel display when using the WebGL renderer
  • Font : added true support for bitmap font generated out of true type fonts (e.g. Littera, bmfont, bmglypgh, etc...)
  • Particles : reduced creation/use of temporary (vector) objects
  • Pointer : fixed bug with Chrome on Windows touch devices where touch input would register, but mouse input would not. (credit to BrianRosamilia)
  • Pointer : PointerEvent detection is now fully W3C compliant
  • Pointer : automaticaly free any defined region if there is no callback left
  • Renderable : added a new currentTransform property that defines the renderable transformation matrix
  • Renderable : transformations can now be automatically applied through the autoTransform flag (off by default for user-defined objects)
  • Renderable : me.AnimationSheet has been merged into me.Sprite (me.AnimationSheet is now only an alias), and rendering function simplified
  • Renderable : fixed image layer first update, when added to a child container (and not directly the root one)
  • Renderer : simplified/aligned both the Canvas and WebGL renderer API in a more WebGL fashion
  • Renderer : added a subPixel rendering option (off by default)
  • Shapes : polygon based shapes can now be freely transformed, and bounding box will be resized accordingly
  • TMX : scaling and rotation can now be applied to a tilemap (see me.levelDirector.loadLevel() for example)
  • TMX : fixed some issues when loading TMX level into a child container.
  • WebGLRenderer : fixed the currentColor alpha not taking in account the "globalAlpha" (now better match canvas renderer)


melonJS 3.1.0

@obiot obiot released this May 16, 2016

  • Audio : exposed a function to allow modifying the playback rate of the specified audio clip.
  • Audio : added back the possibility to stream audio elements (through the stream flag when defining audio assets)
  • Camera : use the alpha component of the given color as the threshold for fading effect
  • Color : normalized support for #RGBA and #RRGGBBAA formats (to match CSS standard)
  • Core : added a function to change the renderer framerate at runtime
  • Core : simplified the "startup" functions to allow for shorter initialization code (see boilerplate)
  • Core : removed previous Ejecta "hacks" (requires the latest Ejecta 2.1/development version)
  • Documentation : various fixes and missing items added (e.g me.Object that was missing)
  • Debug : debug panel(s) now automatically register themselves upon loading (see boilerplate)
  • Input : added support for gamepad analogue axis binding
  • Input : fixed a regression with pointer events not firing with "floating" regions (@thedrumchannell)
  • Particles : fixed a crash when removing a particle emmiter during a level change/reset
  • Renderable : fixed missing onDestroyEvent function when adding basic renderables to the game world.
  • Renderable : fixed Sprite objects initialization when using a string argument for "image" (@trevorjwilliams)
  • TMX : added support for JSON-format external tilesets
  • TMX : fixed the clearTile function when using preRender and the WebGL renderer
  • TMX : fixed prerender on browsers that support Canvas2DContextAttributes.alpha
  • TMX : disabled animated tiles when using the prerender mode (these two are not compatible)
  • TMX : fixed a regression with Tile property parsing
  • TMX : fixed a regression with level loading when no tilesets are defined.
  • TMX : fixed decoding of maps using CSV data format (in Tiled) and exported to JSON
  • TMX : added support for typed custom properties (Tiled 0.16)
  • WebGLRenderer : added a workaround for Safari resetting WebGL attributes bindings (see #783)


melonJS 3.0.1

@obiot obiot released this Feb 23, 2016 · 3 commits to 3.0.x since this release

  • Core : fixed/improved compatibility with Ejecta (e.g. initialization, CAF support)
  • Input : actually really truly fix pointer event z-ordering, finally


melonJS 3.0.0

@obiot obiot released this Feb 2, 2016 · 34 commits to 3.0.x since this release

  • Audio : updated to the latest Howler v2.0.0 beta version
  • Audio : added a function for added convenience (was already possible by calling back
  • Container : added an autoDepth feature that auto-increments a child's z-coordinate when inserted
  • Color : add support for the #ARGB and #AARRGGBB formats
  • Core : renamed Object.extend to me.Object.extend (fixes conflicts with FaceBook SDK and underscore/lodash) (@jdrorrer)
  • Core : plugins are now registered to me.plugins to prevent collisions within the me.plugin namespace
  • Core : replaced String.contains by its ES6 equivalent: String.includes
  • Core : replaced Number.sign by its ES6 equivalentL Math.sign
  • Core : has been removed in favor of accessing objects through -- added me.LevelDirector.getCurrentLevel() as a stop-gap
  • Core : added me.sys.updatesPerSecond to configure updating less often than drawing (@Giwayume)
  • Entity : new positioning method, where the renderable is positioned according to its anchor and the Entity's body anchor (@Giwayume)
  • Examples : added an example showing how to build a basic menu (with a panel, checkboxes and buttons)
  • Font : fixed font height not being set when specifying a CSS Unit for the size
  • Font : added basic CSS Unit conversion from ‘pt’,’ex’,’em’ to ‘px’ (these are approximation and not guaranteed accurate)
  • General : the release build files are no longer versioned; this replaces the old style "melonJS-x.x.x.js" file naming convention with just "melonJS.js"
  • Geometry : added a new me.Vector3d and me.ObservableVector3d class
  • Geometry : removed reverse method from Vector classes; use negateSelf instead
  • Geometry : removed reflect and reflectN methods from Vector classes
  • Geometry : fixed floor and floorSelf methods on Vector classes with negative values
  • Geometry : fixed angle method on Vector classes
  • LevelDirector : level loading is now asynchronous; for sequential behavior, use the LEVEL_LOADED event or new onLoaded callback
  • LevelDirector : added an options argument to the loading method; for specifying a target container, callback, and whether to merge (flatten) object groups
  • Input : renamed last remaining mouse-related objects : me.input.mouse => me.input.pointer, me.event.MOVEMOVE => me.event.POINTERMOVE
  • Input : added HTML5 Gamepad API support, with button and axis remapping
  • Input : optimised pointer detection using the quadtree
  • Input : now properly respect object z ordering when firing pointer events
  • Input : fixed event detection on items in a nested container
  • Renderable : prevent position vector re-allocation when pooling renderable objects
  • Renderable : renderables are now using a 3d Vector for position, using the z axis for layer ordering.
  • Renderable : fixed a distortion issue when scaling and rotating sprites (@Giwayume)
  • Renderable : fixed frame position when using cropping in TexturePacker (@Giwayume)
  • Renderable : anchorPoints now defines the renderable position, scaling and rotation default origin point (@Giwayume)
  • Renderable : better animation definition, allowing to set the animation delay on a per-frame basis
  • Renderable : added anchorPoint setting to the constructor
  • Renderer : added renderer.createPattern() and renderer.drawPattern()
  • Shapes : added support for the free Physic Body Editor tool (in addition to the existing PhysicsEditor support)
  • Shapes : refactored me.Rect to inherit from me.Polygon
  • Texture : added support for per-frame pivot points in animations (@Giwayume)
  • TMX : added hexagonal map support (@matthewmmorrow)
  • TMX : optimized all renderers to be more GC friendly (using the pooling system for temporary objects)
  • TMX : refactored the me.TMXTileMap object, so that it can be used to easily add level into a container object
  • TMX : me.ImageLayer is now drawn relative to the viewport boundary, and can be anchored appropriately
  • TMX : internally normalizes XML into the same JSON format supported by Tiled; cleans up many compatibility functions and removes several fallback cases
  • TMX : removed me.TMXTileMap.moveToCenter and me.TMXTileMap.reset methods
  • TMX : added support for per-frame animation delay to Tiled Objects (for tileset animations)
  • TMX : added support for layer data encoding in JSON map format (Tiled 0.13)
  • TMX : added support for evaluations in TMX data; see spike entities in the platformer for a useful example
  • TMX : fixed an isometric rendering bug with odd tile heights
  • TMX : throw an error message when using map exported in XML (deprecated in Tiled 0.15)
  • TMX : allow to parse the backgroundcolor attribute as formatted in Tiled 0.15 (#AARRGGBB)
  • TMX : use the new columns property (if available) when parsing maps (Tiled 0.15)
  • TMX : fixed a regression in AD tile rotation (squares tiles only)
  • Video : optimized ImageLayer repeat modes (repeat modes require power-of-two sized images for WebGL)
  • Video : added fill-min and flex scaling modes
  • Video : animations are now able to skip frames for low FPS devices and high-speed animations
  • WebGLRenderer : added a repeat parameter to createTexture method


melonJS 2.1.4

@obiot obiot released this Sep 19, 2015

  • Audio : fixed the audio-enable workaround on iOS9
  • Tween : fixed potential re-initialization issues when recycling tween objects.


melonJS 2.1.3

@parasyte parasyte released this Jul 26, 2015 · 918 commits to master since this release

  • Audio : fixed an issue with decoding audio data on Opera
  • Audio : updated to the latest 2.0 Howler beta (fixes a loop issue on Chrome mobile, and touch event for iOS playback)
  • Core : fixed an exception in the Map polyfill
  • Documentation : added docs for the Renderer interface, including the beta WebGLRenderer and shader
  • Particles : fix an exception in me.ParticleContainer (introduced in 2.1.2)
  • TMX : fixed TMXLayer opacity when preRender is enabled
  • TMX : fixed ImageLayer opacity
  • Video : fixed a regression where me.device.getPixelRatio() no longer works when called before (introduced in 2.1.0)
  • WebGLRenderer : fixed a bug that causes a compile failure with the quad fragment shader on a small number of platforms


melonJS 2.1.2

@obiot obiot released this Jun 24, 2015 · 30 commits to 2.1.x since this release

  • LevelDirector : do not replace Tile Object's renderable
  • Renderable : fixed renderable bounds initialization with object pooling


melonJS 2.1.1

@obiot obiot released this Jun 5, 2015 · 36 commits to 2.1.x since this release

  • Container : fixed child bounds when manipulating the container position.
  • Core : fixed a regression when using the pooling system with renderables.
  • Examples : fixed conditional debugPanel loading in cocoonJS
  • Font : fixed the drawStroke function (zoiba)
  • Input : fixed an uncaught exception with the 'maxTouchPoints' polyfill under Chrome 43+
  • Input : fixed/improved pointerEvent and pointerLeave event bindings for the sample GUI Object
  • Loader : throw an exception indicating to use JSON if XML parsing is not supported by the browser/platform