forked from melonjs/melonJS
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
521 lines (497 loc) · 35.2 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
Version History
---------------
2.2.0
* Shapes : added support for the free Physic Body Editor tool (on top of the existing PhysicsEditor support)
2.1.1
* 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
2.1.0
* Audio & Loader : file/clip names passed to various methods are now case sensitive. Removed uses of toLowerCase on variables.
* Audio : properly dispose of audio resources when using cocoonJS
* Container : `getChildByProp` and friends now accepts a RegExp for value matching
* Color : added high-precision color transformation for me.Color
* Core : added `me.pool.exists` (@xorinzor)
* Core : fixed collision detection with nested Containers
* Core : added `me.game.HASH` to pass key-value options in the URL
* Core : now uses only case-sensitive string matching; DoN't MiX cAsE!
* Device : added browser language detection
* Entity : entity bodies now have a default shape if not overridden by the entity constructor.
* Entity : renderables are now positioned relative to the body bounds
* Font : updated me.Font to work with me.Color (@xorinzor)
* Font : updated the me.Font api to be consistent with ne.BitmapFont and the Renderer class
* Font : added support for WebGL (using me.Font is however not recommended for performances reason)
* Input : added support for `pointerenter` and `pointerleave` events (@TheManuz)
* Input : allow regions to be any shape when registering pointer event, and not just me.Rect
* Input : `releasePointerEvent` now accepts an optional extra argument that references "which callback" to release
* Particles : fixed angle variation and speed variation in `me.ParticleEmitter`
* Renderable : normalized constructors for `me.Sprite` and `me.AnimationSheet` (see the wiki upgrade guide)
* Renderable : removed `hWidth` and `hHeight` properties
* Shapes : added basic support for the PhysicsEditor tool (mainly shapes definition)
* Texture : added support for the WebGL Renderer
* Texture : texture atlas can now be created using a “standard” sprite sheet
* Texture : `me.TextureAtlas` has been renamed to `me.video.renderer.Texture`
* TMX : added parsing of the new `id` (unique ID) property for objects (Tiled 0.11.0)
* TMX : fixed horizontal, vertical and antidiagonal flipping for tile objects
* TMX : remove deprecated "transparency color" - use PNG images with alpha channel instead
* Video : refactored the me.video.init to be more flexible in terms of mandatory/optional arguments
* Video : turn canvas transparency off by default; can be enabled by passing `options.transparent = true` to `me.video.init()`
* Video : renderers are now classes that can be instantiated with `new me.CanvasRenderer` and `new me.WebGLRenderer`
* Video : added support for the `image-rendering` CSS property standard "pixelated" value
* Video : added new `scaleMethod` option : `fit`, `fill-max`, `flex-height`, `flex-width`, and `stretch`; replaces old `maintainAspectRatio` flag (@Djokal)
2.0.2
* Audio : automatically cleanup `onend` callbacks in `me.audio.play`
* Audio : `me.audio.play` now applies the `loop`, `onend`, and `volume` properties only to the expected sound instance ID
* Audio : fix `me.audio.unmute()`
* Audio : updated to the latest Howler 2.0 build (various fixes and improvements)
* Audio : added `instance_id` parameter to `mute` and `unmute` methods
* Audio : updated documentation
* CanvasRenderer : fixed an issue/regression with the `globalAlpha` functions
* Core : fixed collision detection between `me.Ellipse` (circle) and `me.Line` shapes
* Core : fixed renderable positioning with nested me.Container objects
* Core : fixed an uncaught exception in IE9 with Float32Array
* Documentation : fixed anchor positioning
* Documentation : added anchor target highlighting
* Documentation : fixes in me.Font, me.BitmapFont, and me.Entity
* Entity : removed `me.ObjectSettings`
* Font : fixed globalAlpha not being set when using `me.Font.setOpacity()`
* TMX : fixed an uncaught exception when loading a map with an empty object layer (thanks @Tiagojdferreira)
2.0.1
* Core : fixed loading under CocoonJS when using Canvas+
* Shapes : replaced the isometric magic numbers used for scaling, by proper and more accurate math constants (ldd)
* Audio : fixed sound looping
* Audio : fixed onend callback not being repeatedly fired when looping a sound
* Audio : cleaned the onend callback when stopping a sound
* Audio : added a me.audio.fade() function
2.0.0
* Core : implemented a new shape based collision system for the collision layer
* Core : added user agent detection for Kindle devices
* Core : fixed the collision response for circles (me.Ellipse with a uniform radius)
* Shapes : renamed me.PolyShape to me.Polygon and simplified the constructor (no longer needs a fourth param)
* Shapes : added a new shape: me.Line
* Shapes : added multi shapes support for body
* Shapes : added rotation and scaling support for `me.Polygon`/`me.Line` shapes.
* Audio : the Howler library has been updated to the last 2.0 beta
* Audio : removed the cocoonJS hack, as the pause/resume function have been fixed through Howler 2.0
* Entity : added automatic collision response handling (not fully done yet actually)
* Container : fixed an issue where "non-floating" containers always passed the in-viewport test
* CanvasRenderer : All fill & stroke methods have removed the color & line width parameters. Use the new setColor and setLineWidth methods.
* CanvasRenderer : Removed strokeLine, was duplicate with drawLine
* WebGLRenderer : New WebGLRenderer has reached "alpha", and can be enabled by passing the `me.video.WEBGL` flag to `me.video.init()`
* Particles : fixed randomness in the emitter for scaling and rotation of particles
* Particles : fixed widget drawing in Particle Editor
* TMX : added rotation support for Polygon/PolyLine objects (Tiled 0.10+)
* TMX : added support for tileset animations (Tiled 0.10+)
* TMX : fixed isometric projection for Polygon/PolyLine objects
* TMX : fixed TSX external tileset loading
1.1.0
* Core : reorganised source code for all basic object definition/augmentation
* Core : new CI and unit testing frameworks
* Core : new object inheritance mechanism: http://github.com/parasyte/jay-inheritance
* Core : added array random and weightedRandom functions (aaschmitz)
* Core : added a Base64 Encode function (aaschmitz)
* Core : new `me.Error` class to help better track down exceptions' origin
* Core : brand new "Separate Axis Theorem " based collision algorithm (support polygon/ellipse, and provides more accurate collision response)
* Core : added collision filtering support
* Core : added a spatial partitioning algorithm (QuadTree) for super fast collision detection
* Container : `addChild` and `addChildAt` now return the added child
* Video : refactored canvas drawing out to me.CanvasRenderer. Video is now agnostic of rendering target. Use me.video.renderer to call things like getWidth, getHeight, getCanvas, getContext, etc.
* Video : constructor parameters changed. 2nd parameter now expects renderer type. For now, just supports me.video.CANVAS
* CanvasRenderer : object is passed to the draw calls of each object in the world Container. Implemented various draw apis fillRect, and fillArc for example. me.Font still requires an instance of Context2d.
* Renderable : renamed `me.SpriteObject` to `me.Sprite` and `me.ObjectContainer` to `me.Container`, for a cleaner API
* Renderable : constructors refactored to accept x & y numeric values, over a single vector object. Effects: me.Container, me.Rect, me.PolyShape, me.Ellipse, me.Renderable
* Shapes : setShape updated to accept x & y numeric values over a vector object for: me.Rect, me.PolyShape, me.Ellipse
* Camera : fixed viewport bounds setting when using isometric map (Juhana Paavola)
* Entity : entity object redesign with a full polygon shape based physic body implementation
* Entity : `me.ObjectEntity` has been renamed to `me.Entity` to avoid confusion between the old and new entity component.
* Audio : fixed some audio load issues and error callbacks
* Audio : sync'ed with last Howler 1.1.25 version (fixes numerous issues, see official changelog for more details)
* TMX : fixed the background color drawing when the level is smaller than the display canvas
* TMX : fixed the getTile function returning wrong tiles when using isometric maps
* TMX : fixed collision layer rendering issue with isometric map
* TMX : fixed world container size not being updated after a new level is loaded
1.0.2
* Core : improved general compatibility with IE9/IE10 (Desktop/Mobile/Tablets)
* Geometry : added basic type check for the `me.Vector2d` constructor
* Input : fixed event detection on Chrome 35+
1.0.1
* Core : removed unused `Object.mixin` method, (caused compatibility issues with socket.io and other libs)
* Entity : disable falling flag when gravity is disabled
* Entity : fix an exception in ObjectEntity.checkCollision()
* Entity : fixed a regression on breakable tiles
* Entity : use width and height by default if spritewidth and spriteheight are not defined
* Entity : throw an exception if mandatory fields width and height are not defined
* Entity : fixed an exception in ObjectEntity.flipX/Y()
* Loader : fixed asset loading when named as a number
* ObjectContainer : use cyclic zIndex by default instead of Infinity
* Audio : sync'ed with last Howler version (as now officially and properly support CocoonJS)
* Audio : melonJS now throws an exception when attempting to load audio assets before audio is initialized
* TMX : fixed a potential issue with ImageLayer when ratio is set to 0 in Tiled
* Font : fixed opacity property usage for me.BitmapFont object.
* Renderable : added a tap and hold feature to the me.GUI_Object object (juhanapaavola)
* Particles : fixed the particle emitter bounds (aaschmitz)
* Input : added several keyboard keys for input mapping (aaschmitz)
1.0.0
* Core : now pass the elapsed time as a parameter when calling any object update function
* Core : cleaned-up/renamed conflicting set function in shape and font objects
* Core : added new shapes objects (Ellipse, Polygon) on top of the existing Rectangle one
* Core : added a mixing property to object (insidiator)
* Core : deprecated object manipulation (add, remove) have been removed from me.game
* Core : renamed the `me.entityPool` API to `me.pool` and related functions (see documentation & upgrade guide)
* Entity : deprecated helper function (doJump, doWalk) have been removed
* ObjectContainer : renamed getEntityByProp to getChildByProp
* ObjectContainer : getChildByProp now returns all matching object type and not only "entities"
* Camera : camera bounds are now defined as a rectangle and not only in width and height
* Loader : added resource information to loader progress event (warpten)
* Loader : added loading of TMX data from javascript (json) objects (paulmedwal)
* Color : melonJS now defines a new me.Color class for advanced color manipulation
* Particles : added basic Particle System, with emitters and particles (aaschmitz/insidiator)
* Particles : added a particle emitter editor, see the example folder (insidiator)
* Device : added full cross-browser support for the Fullscreen API (see me.device)
* Device : added support for the vibration API (me.device.vibrate)
* Device : renamed the me.save.delete function to me.save.removed (delete is a reserved keyword)
* Device : added support for the visibilitychange API (pause/stop state on window show/hidden status)
* Audio : modernised (and also mobile compatible) web audio API based on the awesome Howler library
* Input : added the possibility to disable globally or per key the default browser action
* Input : automatically enable keyboard even on desktop type devices
* Input : the registerPointerEvent function now only accepts the standardized Pointer Event names.
* TMX : added proper support for all shape type (collision is still however resolved using AABB detection)
* TMX : XML TMX map are now converted to a JXON object on-the-fly, allowing to remove duplicated parsing code
* TMX : added the Tiled "type" property to TMXObject
* TMX : melonJS will now respect the object size as defined in Tiled when parsing/creating related object in the game world
* Timer : added a setTimeout and setIntveral function obeying the engine pause state
* Tween : fixed tweens to properly maintain time state when paused
* Renderable : `collisionBox` has been replaced by a more cleaner implementation (see `getShape`/`addShape`/`getBounds`)
* Renderable : the flicker function now takes the global flickering duration in ms (as opposed in frame count)
* Renderable : removed the visible property
0.9.11
* Documentation : numerous fixes and improvements
* General : fix initial loading for me.save, and update documentation
* General : fix detection of localStorage on some phones (agmcleod)
* General : fix uncaught exception when objects without a position vector are added to a container
* Input : fully support event-driven key input with me.event.KEYDOWN and me.event.KEYUP
* Input : multiple keys bound to the same action will no longer cancel each other
* Input : fixed pointerEvent support on IE11
* ObjectContainer : fixed rendering of nested containers (again) - Thanks to Peter Hull
* ObjectContainer : fixed getEntityByProp with nested containers
* Animation : (quick) fixed hWidth and hHeight not being updated when the frame size is different
* Core : better support object reset through a onResetEvent function when using object pooling
* Tween : updated the me.Tween object to be usable with the object pooling mechanism
* Font : added a trimRight polyfill to the String class to help fixing multi-line ASCII rendering
* Font : added a drawStroke function
* Font : fixed a bug that broke some CSS font-family names, like `monospace` and `"Trebuchet MS"`
0.9.10
* Core : fixed object `visible` flag not being set based on their parent group visible status
* Core : fixed both `pauseOnBlur` and `StopOnBlur` being enabled by default
* TMX : fixed the imageLayer reset bug (when unsubscribing the viewport change event)
* TMX : fixed an undefined tileset issue when adding a new Tile through the `setTile` function
* Documentation : fixed the parameter value of the hasChild function
* Renderable : moved the opacity related getter/setter function into the Renderable class
* Renderable : fixed group opacity setting fully overwriting renderable opacity settings
* ScreenObject : fixed cases where ScreenObjects may not be considered in the viewport
* ObjectContainer : fixed rendering of nested containers
0.9.9
* General : added proper support for a jslint task and cleaned source code accordingly (nvlbg)
* General : added a renderable container object (me.ObjectContainer) and reorganize `me.game` accordingly
* General : added `me.game.world` as a reference to the game world root object container.
* General : added a new me.save class to manage localStorage, and moved (deprecated) the old me.stat to the plugin repository
* Core : improved game pause management (by swmuron)
* Core : added a `me.device` object containing device specific capabilities and events (agmcleod)
* Core : moved all device read-only flags to the new me.device object
* Core : fixed Opera Mobile detection when sniffing user agent
* Core : improved orientation change detection, added me.device.orientation and a specific minpubsub channel
* Core : moved debug flags to the debugPanel plugin
* Input : fixed accelerometer event registration when supported
* Input : added support for windows 8 accelerometer (Halfman)
* Input : improved mouse wheel event support to be compatible with all recent browsers
* Input : added support for the touchCancel and mousecancel events
* Input : added TAB key definition to key bindings (agmcleod)
* Loader : refreshed the loader a bit, and added the new logo
* Loader : fixed binary loader (agmcleod)
* Video : added support for CocoonJS 1.4 ('antialias' parameter and the new `dispose` function)
* Video : added proper support for video scaling on High-DPI devices (no longer requires the JS hack in the index HTML file)
* Video : fix `me.sys.scalingInterpolation` when display is resized.
* TMX : fixed default group opacity value not being applied to child objects.
* TMX : optimized tile rendering, by using a tileset reference in Tile object
* TMX : added preliminary support for non rectangular shapes in Tiled (although currently converted to me.Rect)
* TMX : fixed multiple image backgrounds with `ratio` properties that are different values
* TMX : fixed me.ImageLayer drawing being delayed by one frame
* Font : Font objects now properly extend me.Renderable
* GUI : `HUD` objects have been completely replaced by me.ObjectContainer; See Platformer example for new HUD implementation pattern.
* Animation : the `animationspeed` property, now defines the delay between frames in terms of milliseconds (as opposed to framecount)
* Animation : allow animation callback to prevent resetting to first frame by returning `false` *really fixed this time*
* Shapes : new shapes added for future expansion: me.Ellipse, me.PolyShape
* Shapes : `me.Rect.getRect()` renamed `getBounds()`
* Tween : the tween implementation has been updated to the last official r11 version.
* Camera : renamed the mislabeled worldToScreen and ScreenToWorld, and fixed a bug in one of the function.
0.9.8
* Renderable : added ShoeBox Packed Texture Support (see `me.TextureAtlas`)
* Loader : the `tps` data type has been changed to a more generic `json` data type (agmcleaod)
* Input : added MSPointer support (Halfman)
* Input : normalized API and management of input event and enabled multi-touch for PointerEvent
* Input : added throttling support for `****move` events
* Core : main loop now uses requestAnimationFrame by default with a fallback to setTimeout
* Video : added the possibility to specify a maximum size when enabling video scaling
* Video : automatically limit the maximum size if the corresponding CSS properties are set
* TMX : added the possibility to specify different axis value for the scrolling ratio
* Font : fixed drawing characters with charCode smaller than the firstChar value.
* Renderable : allow animation callback to prevent resetting to first frame by returning `false
* Core : added "Mobile" to `me.sys.isMobile` UA sniffer (fix Firefox OS detection)
0.9.7
* General : melonJS now uses Grunt, the task manager, for the build system
* General : game objects will not update unless inside the viewport or `obj.alwaysUpdate` flag is enabled
* Audio : preliminary audio support for mobile devices (iOS6 for now)
* Core : added a `me.sys.isMobile` flag to detect running on a mobile device
* Core : now using `screencanvas` extension for CocoonJS
* Core : fixed `me.game.remove()` destroying the object too early
* Entity : ObjectEntity is now composed with a `renderable` component (does not anymore inherit from AnimationSheet)
* Entity : renderable default position is now set based on the me.ObjectEntity default anchor point.
* Entity : fixed ladder collision detection/management
* Examples : new collision_test example (see ticket #103)
* Examples : new font_test example
* Font : changed default alignement to `left`/`top`
* Font : added multiline support for `me.Font` and `me.BitmapFont`
* Geometry : most `me.Vector2d` methods return a reference to `this`, to allow method chaining
* Input : added a `me.input.unlockKey()` function that allows to manually unlock key (DblK)
* Loader : fixed loader when repeatedly calling the preloader
* Renderable : new base class for any objects that needs to draw (Sprite, ImageLayer, GUI, etc...)
* Renderable : added TexturePacker Support (see `me.TextureAtlas`)
* TMX : fixed `me.ImageLayer.ratio` on Firefox & Opera
* TMX : allows changing the imageLayer default origin using the imageLayer anchorPoint
* TMX : added a new `me.game.getEntityByProp()` function (DblK)
* TMX : added JSON map parsing support
* TMX : small optimization for isometric rendering (`pixelToTileCoords()` function)
* TMX : fixed access to inherited properties
* TMX : added an entry point for a potential gzip/zlib TMX decompression plugin
* TMX : fixed object positioning on isometric maps (andyveliz)
* TMX : property value convention for automatically JSON-decoding; prefix with `json:`
* Video : fixed `viewport.shake()`
* Video : optimized framerate on cocoonJS platforms by using the 'screencanvas' extension
* Video : disable video scaling interpolation by default
0.9.6
* General : fix compatibility issue with previous iOS(5.x) and Android version
* Core : workaround for useNativeFrame when cancelAnimationRequest is not supported
* Audio : added volume and mute control settings
* Audio : added the possibility to stream audio elements
* TMX : code optimization to lower memory usage
* TMX : fixed layer scrolling when using pre-rendering
* Loader : fixed `me.loader.load` not adding TMX into the `me.levelDirector`
0.9.5
* Audio : added mp4/aac pre-loading support
* Audio : added codec selection based on audio support level
* Core : fixed requestAnimationFrame
* Core : added an official plugin API
* Core : fixed a object removing and sorting lock issue
* Core : added a 'floating' property for renderables
* Core : added Object Pooling support
* Core : fixed the `me.game.getEntityByName` function when using camelcase names
* Debug : added a simple debug panel plugin
* Font : fixed font name starting with a decimal value
* Font : added changes to allow specifying a flat number of px,em, etc for font sizes.
* Font : added support for comma separated font names like in CSS
* Event : added Daniel Lamb minPubSub library for event publishing
* Event : fixed touch event support detection on cocoonJS
* Event : added `click`, `dblclick`, `tap` events
* Event : fixed mouse event conflict and mousewheel event
* Geometry : added a function to return the angle between two vectors
* Input : me.GUI_Object's onClicked() function has been renamed to onClick()
* Loader : use asynchronous mode when loading XML files
* Entity : added spacing and margin capacities for sprite (same as Tile Map Sprite)
* Entity : fixed flickering when using requestAnimationFrame
* Entity : added opacity setting
* Entity : fixed visible property automatic setting
* Entity : moved collision check outside of the Entity Object
* Entity : cleaned and renamed the collision utility function
* Entity : added the possibility to check for multiple collision
* Entity : added a `collideType` function to check for collision with a specific type
* Entity : moved collisionBox from SpriteObject to Entity Object
* Entity : added a distanceToPoint, angleTo and angleToPoint function
* Tween : fixed tween when pausing game
* Tween : various fixes and optimization from the official repository
* TMX : fixed a bug that was preventing a non visible layer to be set visible later
* TMX : fixed the clearTile function on non visible layers (e.g. collision map)
* TMX : added official support for Opacity in TiledLayer, TMXLayer, colorLayer and ImageLayer
* TMX : added support for TSX files
* TMX : added a `repeat` property to Image Layer instances, similar to CSS background-position
* TMX : parallax layer is now based on the new "official" Image Layer support (from Tiled 0.9.0)
* TMX : fixed the `getObjectGroupByName()` function
* TMX : added support for custom tile type
* Tutorial : fixed camel case issue in resource names
* Tutorial : update the parallax part to reflect last changes in melonJS (Image Layer)
* Video : added support for display scaling
* Video : added a setImageSmoothing function
* Example : added "whack-a-mole" as an official example
* Example : added a new "platfomer" example (using legal assets) and removed alex kidd based examples
0.9.4
* General : melonJS is now only using Google Closure (removed YUI compressor)
* General : melonJS is now ES5 strict mode compliant
* General : added a .editorconfig file to provide basic rules to editors
* Core : added a flag to enable/disable automatic pause on loosing/gaining focus
* Core : fixed rendering loop when using requestAnimationFrame (parasyte)
* Core : added a renderCollisionMap debug setting (parasyte)
* Core : use console.error instead of window.alert
* Core : added the possibility to specify a user-defined sort function
* Core : fixed mixing screenObject added as object, and TMX level loading
* Core : fixed screenObject when extending update & draw function
* Entity : added an anchor point for renderables (through SpriteObject)
* Entity : added rotation support (through SpriteObject)
* Entity : added the possibility to pause an animation (parasyte)
* Entity : fixed default position by using top-left coordinates as in Tiled
* Entity : fixed invisible entities being removed when colliding
* Font : fixed me.Font horizontal alignement
* General : fixed & enhanced object/memory deallocation when switching levels
* General : rewrote the parallax code using the new Generic Image Layer Object
* General : added support for vertical parallax layer
* Geometry : added a function to test for vector "equality"
* Geometry : added a couple of Self function (to help avoid object creation)
* Loader : fixed a case issue between filename and asset name
* Input : added the possibility to check for mouse event based on world or screen coordinates
* Input : fixed a false-positive issue at initialization, and usage of special keys (parasyte)
* TMX : added dynamic layer rendering (configurable globally or per layer through Tiled)
* TMX : added Image Layer Support (Tiled daily builds only)
* TMX : added support for the new map background property (Tiled daily builds only)
* TMX : added a Color Layer (used when a background color is defined)
* TMX : another round of clean-up and various bug fixing
* TMX : added support for TMX Object without name (parasyte)
* TMX : added preliminary support for polygon and polyline objects (parasyte)
* TMX : fixed visible flag and user-defined properties not being applied to ObjectGroup
* TMX : fixed rendering issue with transformed tiles (AD, H, V)
* TMX : fixed display of map being smaller than the viewport
* TMX : fixed TMXObject not being declared correctly under the "me" namespace
* Utils : fixed the HexToRGB function and added support for the 3 char format (#hhh)
* Tween : fixed exception in the tween library (parasyte)
* Documentation : corrected and added missing documentation
0.9.3
* General : better error management and reporting
* General : added a dummy console.log for platforms not supporting it
* General : melonJS now uses Google Closure for library minification
* General : added a global gravity setting that will override entities default value if defined
* Core : now properly calls all objects onDestroyEvent function when resetting game
* Core : added the possibility to define a callback when a level is fully loaded
* Core : added a couple of utility functions (degToRad, radToDeg)
* Core : fixed GUID creation when passing a non string parameter
* Core : only check for collision when the projection vector is set
* TMX : global rewrite, code optimization and clean-up
* TMX : added support for isometric map loading and display
* TMX : added support for perspective map loading and display
* TMX : relaxed TMX property case sensitive checks
* TMX : added tile rotation support (Tiled 0.8.0)
* TMX : fixed level name property not being set, and use it when required
* LevelDirector : fixed the nextLevel & previousLevel functions
* Loader : added binary file support
* Loader : added possibility to dynamically load any resources (i.e. during the game)
* AnimationSheet : the entire sprite-sheet is now use to create the default animation
* Entity : fixed CollisionBox not being properly used on y axis when checking for collision
* Entity : fixed CollisionBox issue when dealing with sub-pixel positioning
* Entity : fixed setVelocity not setting y velocity when x velocity is null
* Entity : added missing properties (GUID, name) in InvisibleEntity
* Entity : fixed res.obj not defined in InvisibleEntity
* HUD : added a removeItem function
* GUI : rewrote the GUI Object accordingly to the new event management
* Geometry : added a containsPoint function
* Geometry : added a floor() and ceil() function to Vector2d
* BitmapFont : fixed BitmapFont ignoring 'center' alignment
* BitmapFont : avoid implicit object conversion when rendering a bitmapFont
* Input : fixed use of numeric keys by using a proper constant value.
* Input : rewrote mouse event management
* Input : added touch event management (with mouse event emulation)
* Input : (beta) multitouch support
* Input : added Accelerometer event management
* Documentation : added a lots of missing documentation on various API
* Documentation : added JS syntax highlighting in the tutorial
* Documentation : don't use onDestroyEvent to manage score in the examples
* Documentation : exposed more TMX objects and APIs
0.9.2
* General : melonJS is now licensed under the terms of the MIT License
* General : added some Cake magic, allowing to use melonJS with CoffeeScript (by scan)
* General : added melonJS UML Class Diagram in the official repository (by Ben2303)
* General : melonJS now properly stays in it's own namespace (me)
* Audio : configurable behavior in case of audio loading error
* Core : fixed a shaking bug when collision box is not aligned with the sprite box
* Core : fixed collision detection bug (object being tested again itself)
* Core : refactored fading function using Tween objects (API CHANGE, see documentation)
* Core : added a helper method to know the sign of an number
* Core : corrected variables definition (global->local)
* Core : added a GUID (Game Unique Identifier) to objects
* Core : getEntityByName now also returns non Entity Object (like layers)
* Core : fixed state change when using custom state values
* Core : me.game.collide now also returns an object reference in the collision vector
* Core : renamed and correctly initialize the localStorage flag capability
* Documentation : various documentation correction and improvements
* Entity : added friction management
* Entity : updateMovement function now returns a collision "vector" (API CHANGE, see documentation)
* Entity : refactored/cleaned-up movement/collision function
* Entity : added support for multiline spritesheet (fixed cell size)
* Entity : added the possibility to define a specific transparent color for spritesheet
* Entity : implemented a resize function, allowing to resize a sprite on the fly
* Entity : optimized/refactored SpriteObject
* Entity : fixed object with 1 single sprite (no animation) not begin updated
* Entity : added the possibility to also specify a callback when an animation is over
* Entity : fixed an initialization issue when using melonJS without a Tilemap
* GUI : corrected me.GUI_Object and added missing documentation
* GUI : marked me.GUI_Object as deprecated, as it will be rewritten in a next release
* Event : also cancel event bubbling
* Font : added support for multiline fontsheet
* HUD : added a setItemValue() function
* HUD : corrected display issue on Opera
* Loader : added possibility to add graphics resources after pre-loading (e.g. ingame)
* TMX : use native Base64 decoding when available
* Viewport : object to follow can either be a Object Entity or a position Vector
* Viewport : fixed default value (if parameter not specified) for Axis to follow on
* Video : cleaned-up the applyRGBFilter function
0.9.1
* Core : "cache image" option (disabled by default) to use canvas instead of directly using Image Object
* Core : add onPause and onResume callback when game is paused/resumed on losing/gaining focus
* Core : added possibility to pass more than 1 extra argument to me.state.change (extra arguments will be passed to the reset function of the target object)
* Core : object can now only be destroyed using me.game.remove(obj), made of ObjectEntity.destroy a private function
* Core : beta dirty Rectangle support (only working for non scrolling level for now)
* Core : experimental webGL wrapper
* Core : added a getEntityByName function
* Core : fixed some kind of "lag" issues when deleting objects
* Core : improved the requestAnimFrame usage, and fallback to setInterval. me.sys.useNativeAnimFrame to enable it (disable by default)
* Core : optimized the way objects are managed in the game loop
* Core : defined (and used) a Object.defineProperty function to replace __defineGetter__ / __defineSetter__ (was not supported on IE9/IE10)
* TMX : implemented Tiled "transparency" property for Tileset, allowing to specify which color should be transparent (note: this slows down level loading)
* TMX : fixed unnecessary canvas creation for the collision layer (should free some memory)
* TMX : cleaned/optimized data loading and fixed an issue on FF with XML parsing of "big" Base64 encoded maps (only first nodeValue was parsed by the engine)
* TMX : added support for CSV data encoding
* TMX : added support for flipped tiles, as supported in Tiled 0.7
* TMX : added multiple tileset support
* TMX : added a "background_image" property. To be set through Tiled, and allowing to specify a fix background.
* Entity : merge AnimatedSpriteObject into SpriteObject. SpriteObject now takes an optional additional argument to create an animated sprite
* Entity : added a distanceTo function
* Viewport : fixed camera refresh when changing "deadzone" values
* Loader : added a "onProgress" callback to get progress notification, removing the need to poll the loader each frame for loading progress
* Loader : fix progress notification when TMX files are loaded into the levelDirector
* Loader : added a retry counter for the audio loading : script will now stop and throw an exception after 3 unsuccessful loading attempts.
* Video : renamed "applyEffect" to "applyRGBFilter", and fixed an issue on Opera
* Audio : fixed compatibility issues with IE9/10
* Geometry : added a merge function to me.Rect
0.9.0
* Documentation : API documentation using jsdoc-toolkit (finally!)
* Geometry : define getter for me.Rect coordinates (simplify code)
* Level : support for fadeOut/fadeIn effect in me.LevelEntity (when changing levels)
* Entity : correctly implemented InvisibleEntity Objects (no longer inherit from ObjectEntity)
* Entity : makes SpriteObjet inherit from me.Rect (make it easier to manage sprite pos and size)
* Loader : cosmetic update of the preloader screen
* Viewport : "rounding" issue fix in the viewportEntity (~~30% less CPU usage on Safari/OSX!)
* TMX : cleaned & refactored tilemap collision detection (still not perfect though)
0.8.0
* TMX : support for "TiledObject" (as supported in Tiled 0.6.2)
* Entity : re-factored constructor call to Object Entities (to use the settings obj produced through Tiled)
* Entity : moved collision function from AnimatedSpriteObject to ObjectEntity
0.7.9
* Viewport : added some effects to the camera object (shaking, fading, ...)
* Viewport : re-factored and fixed the camera/viewport code
* Core : re-factored public objects using John Resig Inheritance mechanism.
* Core : fixed the "bootstrap" (unnecessary double call)
* Entity : re-factored parallax code & corrected a bug that was causing the layers to be drawn 2x times
* Audio : partially fix crash audio in safari when audio is enabled
* Core : fixed gfx glitches (rounding issues)
0.7.6 (May 16, 2011)
first public version with alex4 !
www.melonjs.org is live :)