- Fixed overzealous ignorance of collision normals for less common tile configurations (#55, #56)
- Implemented Facade.resetCollision() helper method. This can be used to reset all Arcade Physics body collision flags to their default values.
- Fixed typescript definition for
game.slopes
.
- Removed the snap feature (#34)
- Removed heuristics in favour of a custom SAT implementation that prevents internal edge collisions (#36, #38, #40)
- Implemented debug rendering for tile normals and ignored tile normals
- Implemented simple object pooling for less memory-hungry calculations (#42)
- Improved the consistency of SAT responses and overlap values set on physics bodies
- Dropped bower in favour of npm to load in the SAT.js dependency.
- Added a banner to the minified distributive as part of the build process.
- No functional changes.
- Added heuristics for square tiles to improve skipped collisions (#38) at the expense of some inconsistencies when bodies exit tiles from inside.
- Allowed physics bodies to disable and enable heuristics for themselves using
body.slopes.heuristics
.null
uses default,false
disables andtrue
enables.
- Implemented unintrusive support for an experimental Phaser CE fork.
- Added sprite scale support for AABB physics bodies.
- Included a reference to the plugin with the facade. This makes it easier to
remove the plugin at runtime
(
this.game.plugins.remove(this.game.slopes.plugin)
). - Fixed multiple calls to
slopes.body.enable(sprite)
causing an error. - Ensured that tilemap debug rendering only wraps if the layer has its
wrap
property set totrue
. - Fixed wasTouching flags (#35).
- Added the last collided tile to
body.slopes.tile
. - Fixed a heuristics mistake that's been around since May 2016 (4ee0d23c)! There are probably more...
- Fixed a wrapping issue with tilemap layer debug rendering.
- Added dynamic
heuristics
andpreferY
properties to the Facade, making it simpler to toggle these features globally (game.slopes.heuristics
,game.slopes.preferY
). - Fixed SatSolver.collide() setting collision response properties on physics bodies before knowing whether the separation was successful.
- Fixed SatSolver.collideOnAxis() not setting collision response properties on physics bodies.
- Improved memory consumption by reusing SAT response objects for each body.
- Supported tile collision flags when determining separation (#27, #28, thanks @kevinchau321).
- Fixed collision snapping running when it shouldn't (#21, thanks @michaeljcalkins).
- Implemented tile slope polygon debug rendering (#4).
- Added premade Arcade Slopes tilesets (#29).
- Implemented Arcade Slopes tileset mapping shortcut (#9).
- Implemented support for tile property type mapping (#9).
- Prevented separation if a body isn't moving into a tile (#14).
- Refactored the plugin class to attach the Facade to the Phaser game instead of itself.
- Extracted a separate roadmap file from the readme.
- Implemented automatic slope mapping for the Ninja Physics tileset.
- Added missing touching flags for physics bodies (#19, thanks @IkonOne).
- Implemented internal edge flagging (#18).
- Updated SAT.js dependency.
- Implemented support for offset tilemaps (#26).
- Initial circular physics body support.
- Typescript definitions (#12, #15, thanks @IkonOne).
- Implemented corner collision pulling (#3).
- Fixed incompatibility with Phaser 2.4.9 and 2.5.0 (#5).
- Updated the readme regarding changes to physics body sizes before enabling slopes (#6).
- Collision pulling; an alternative approach to sticky slopes.
- Friction for physics bodies and tiles
- Collision callback support, including
physics.arcade.collide()
calls, tile-specific callbacks and layer-level tile callbacks - Initial sticky slopes functionality
- Arcade body properties that configure interaction with tiles
- Tile slope type name retrieval
- Further improved heuristics
- Fixed heuristics not working after disabling and re-enabling the plugin at runtime
- Fixed some heuristics rules
Lesson learned: Heuristics are unreliable!
- Initial functionality (in development since 19th April 2016)
- 24 new tile types
- SAT-driven collision solver using SAT.js
- SAT restraints based on heuristics that prevent AABBs catching on hidden edges
- Works with sprites, groups and particle emitters!