forked from melonjs/melonJS
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
384 lines (368 loc) · 25.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
Version History
---------------
1.1.0
* Core : Reorganized source code for all basic object definition/augmentation
* Core : New CI and unit testing frameworks
* Core : New object inheritance mechanism
* Entity : Disable falling flag when gravity is disabled
* Entity : Fix an exception in ObjectEntity.checkCollision()
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 (ciangames/insidiator)
* Particles : added a particle emmiter 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 functio 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 overwritting 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 reorganise `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 deccompression 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 possiblity 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
* Doc: 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
* Doc: 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 :)