phaser-arcade-slopes
Version:
A Phaser CE plugin that brings sloped tile collision handling to Phaser's Arcade Physics engine
114 lines (97 loc) • 4.88 kB
Markdown
# Arcade Slopes Change Log
## v0.3.2 - 17th August 2021
- Fixed overzealous ignorance of collision normals for less common tile configurations (\#55, \#56)
## v0.3.1 - 1st March 2018
- 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`.
## v0.3.0 - 5th August 2017
- 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
## v0.2.1 - 1st August 2017
- 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.
## v0.2.0 - 18th June 2017
- 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 and `true`
enables.
## v0.2.0-beta2 - 7th June 2017
- 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 to `true`.
- 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` and `preferY` 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.
## v0.2.0-beta - 10th February 2017
- 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).
## v0.2.0-alpha2 - 8th February 2017
- 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).
## v0.2.0-alpha - 19th August 2016
- Initial circular physics body support.
- Typescript definitions (#12, #15, thanks @IkonOne).
## v0.1.1 - 26th June 2016
- 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).
## v0.1.0 - 22nd May 2016
- Collision pulling; an alternative approach to sticky slopes.
## v0.1.0-beta - 15th May 2016
- 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
## v0.1.0-alpha3 - 11th May 2016
- Further improved heuristics
## v0.1.0-alpha2 - 10th May 2016
- Fixed heuristics not working after disabling and re-enabling the plugin at
runtime
- Fixed some heuristics rules
Lesson learned: Heuristics are unreliable!
## v0.1.0-alpha - 8th May 2016
- 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!