Releases: melonjs/melonJS
Releases · melonjs/melonJS
melonJS 5.0.1
- Input : fix a regression with bindPointer
- Loader : fix the progressBar position when resizing the screen
melonJS 5.0.0
- Audio : Howler core update (2.0.5)
- Audio : added a function to check if audio is muted globally
- Core : fix fullscreen detection when not set on the main canvas
- Core : remove obsolete ES5 shim (it's 2017, update your browser!)
- Core : updated orientation detection, based on the new (draft) Orientation API
- Debug : fixed debug panel toggle features, and automatically display the toggle key
- Geometry : new specific values can be returned through the callback for Observable Vectors
- Input : fix a bug where the gamepad axes may not trigger KEYUP events
- Input : remove deprecated argument type for
me.input.bindGamepad()
- Input : remove deprecated
mousewheel
event - Input : remove deprecated
MS
prefixed Pointer Event - Input : standardize Event.button value and usage across all input models
- Input : me.input.preventDefault now correctly define the default action for pointer events
- Input : fix potential multitouch issues on "hybrid" browsers supporting both TouchEvent and PointerEvent
- Renderable : properly apply transformation and anchor for all me.Renderable objects
- Renderable : move flipX/flipY to me.Renderable, and remove deprecation warning
- Renderable : new
isKinematic
property allowing to opt-out from collision and input events - Renderable : slightly refactored me.ColorLayer and exposed its me.Color property
- TMX : added support for layer grouping (Tiled 1.0.0)
- Viewport : added a method to unfollow the current target
melonJS 4.1.1
- Core : fixed a bug in
Number.prototype.round()
- Core : throw an exception when attempting to add an invalid state in
me.state.set()
- Core : fixed
falling
andjumping
flags onme.Body
when gravity is reversed - Geometry : fixed a bug in
me.Vector3d.abs()
- Geometry : added a new
me.Matrix2d.multiplyVectorInverse()
method - Pointer : fixed
touchstart
events - Pointer : replaced non-standard
mousewheel
with W3C standardwheel
events - Pointer : fixed duplicate
wheel
events
melonJS 4.1.0
- Audio : updated to latest Howler 2.0.2 (WebAudio resume/seek fixes, and IE related security issues)
- Audio : added a
me.audio.seek
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 me.game 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
- 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
- Audio : exposed a
me.audio.rate
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
me.game.updateFrameRate
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
melonJS 3.0.0
- Audio : updated to the latest Howler v2.0.0 beta version
- Audio : added a
me.audio.resume
function for added convenience (was already possible by calling backme.audio.play
) - 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
tome.Object.extend
(fixes conflicts with FaceBook SDK and underscore/lodash) (@jdrorrer) - Core : plugins are now registered to
me.plugins
to prevent collisions within theme.plugin
namespace - Core : replaced
String.contains
by its ES6 equivalent:String.includes
- Core : replaced
Number.sign
by its ES6 equivalentLMath.sign
- Core :
me.game.currentLevel
has been removed in favor of accessing objects throughme.game.world
-- addedme.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
andme.ObservableVector3d
class - Geometry : removed
reverse
method from Vector classes; usenegateSelf
instead - Geometry : removed
reflect
andreflectN
methods from Vector classes - Geometry : fixed
floor
andfloorSelf
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()
andrenderer.drawPattern()
- Shapes : added support for the free Physic Body Editor tool (in addition to the existing PhysicsEditor support)
- Shapes : refactored
me.Rect
to inherit fromme.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
andme.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
andflex
scaling modes - Video : animations are now able to skip frames for low FPS devices and high-speed animations
- WebGLRenderer : added a
repeat
parameter tocreateTexture
method
melonJS 2.1.4
- Audio : fixed the audio-enable workaround on iOS9
- Tween : fixed potential re-initialization issues when recycling tween objects.
melonJS 2.1.3
- 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 beforeme.video.init()
(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