Commit graph

1529 commits

Author SHA1 Message Date
Richard Davey
d56a6c8790 MatterTileBody now extends EventEmitter, meaning you can listen to collision events from Tiles directly and it will no longer throw errors about gameObject.emit not working. Fix #4967 2020-01-28 23:25:12 +00:00
samme
bc39e70412 Fix centering Body in setSize() 2020-01-27 11:15:06 -08:00
Richard Davey
4a6b2087f7 Fixed internal callback handlers 2020-01-15 12:45:59 +00:00
Richard Davey
ff65e69cd1 Changed copyright date to 2020 2020-01-15 12:07:09 +00:00
Richard Davey
c3940e15c6 PhysicsGroup now uses the new internalCreateCallback and internalRemoveCallback to handle its body creation and destruction, allowing you to use your own createCallback and removeCallback as defined in the Group config. Fix #4420 #4657 #4822 2020-01-14 23:57:48 +00:00
Richard Davey
fb7f66838a Marked width/height as readonly and added docs. Fix #4806 2020-01-14 22:45:55 +00:00
Richard Davey
f15ef8648e Lots of type fixes 2020-01-14 17:11:07 +00:00
Richard Davey
91e59ab39a Update MatterPhysics.js 2020-01-14 14:59:35 +00:00
Richard Davey
1c6e8df436 Update MatterPhysics.js 2020-01-13 17:10:19 +00:00
Richard Davey
51aa5d019d Removed namespace as it conflicts with TypeScript defs 2020-01-13 13:28:50 +00:00
Richard Davey
9c0b77db92 Fixed JSDocs 2020-01-13 13:28:24 +00:00
Richard Davey
8b9819b8f7
Merge pull request #4949 from samme/fix/collideSpriteVsSprite
Check for disabled body in collideSpriteVsGroup()
2020-01-13 11:34:36 +00:00
Richard Davey
271e4e3943 Use FuzzyEquals for safety 2020-01-13 11:33:21 +00:00
Andrew Brampton
e42f227ec2
Update documentation and one import, to use the consistent name of Vector2.
There were examples that used Vec2, which wouldn't work. For example `An array of Point or Vector2 objects: [new Phaser.Math.Vec2(x1, y1), ...]` was not copy and pastable.
2020-01-11 06:46:25 -08:00
Richard Davey
cf1e4645f3 Ignore if CoM is 0.5 2020-01-10 18:05:20 +00:00
Richard Davey
f90d679d22 Added setToSleep and setAwake methods 2020-01-10 17:39:40 +00:00
Richard Davey
d884fd0468 Handle scaled bodies properly 2020-01-10 17:03:50 +00:00
Richard Davey
8b1cc40a23 SetBody can now use JSON data natively 2020-01-10 16:24:40 +00:00
Richard Davey
8e7c3103d8 Moved the fromJSON code to its own external parser 2020-01-10 16:24:30 +00:00
Richard Davey
88cd83a508 Fixed bug in PhysicsEditorParser where it would allow non-clockwise vertices through 2020-01-10 15:32:03 +00:00
Richard Davey
1d827c911f 0.2 is just too dim 2020-01-10 14:53:39 +00:00
Richard Davey
ea2337c091 Only if parts = 1 2020-01-10 14:53:27 +00:00
Richard Davey
282a4df811 Update Factory.js 2020-01-10 14:53:17 +00:00
Richard Davey
e07513b707 Small restructure 2020-01-10 11:20:53 +00:00
Richard Davey
4e53d74581 Removed un-used properties 2020-01-10 11:20:41 +00:00
Richard Davey
e27914792e More robust checks 2020-01-10 10:52:54 +00:00
Richard Davey
0d66c98ff0 Added JSDocs for fromPhysicsEditor method and tidied things up a bit. 2020-01-10 08:56:49 +00:00
Richard Davey
ea338cadaa Fixed JSDocs and origin assignment. 2020-01-10 08:56:31 +00:00
Richard Davey
5c9c00bfdb Removed un-used code. 2020-01-10 08:56:17 +00:00
Richard Davey
887227a313 Added centerOffset back and fixed calculations 2020-01-10 08:55:56 +00:00
Richard Davey
6c947c9677 Updated PhysicsEditor Parser
Now allows you to specify options object to override the loaded config. Also removed un-used parameters and fixed JSDocs. Finally, using Common.clone to avoid mutating the loaded JSON.
2020-01-10 08:55:31 +00:00
samme
eacb61e109 Check for disabled body in collideSpriteVsGroup() 2020-01-09 19:45:11 -08:00
Richard Davey
d63001d719 Testing offsets 2020-01-09 17:55:03 +00:00
Richard Davey
590256fe92 Added fromPhysicsEditor method 2020-01-09 17:54:38 +00:00
Richard Davey
d3aaff82e1 Finished JSDocs 2020-01-09 16:38:33 +00:00
Richard Davey
a8f3c3b9c0 New BodyBounds class for getting body bounds based coordinates 2020-01-09 13:18:44 +00:00
Richard Davey
fceef3ddf0 Added BodyBounds class 2020-01-09 13:18:24 +00:00
Richard Davey
d031d91f1e Added bodyBounds class, finished alignBody and fixed typedefs 2020-01-09 13:18:13 +00:00
Richard Davey
9aeead5cc2 New Body typedef 2020-01-09 13:17:56 +00:00
Richard Davey
4de6f17a38 Formatted docs 2020-01-09 13:17:43 +00:00
Richard Davey
cfa6eeb6e2 Finished alignBody method 2020-01-09 00:43:46 +00:00
Richard Davey
4d0618232b Only render compound bounds 2020-01-09 00:43:38 +00:00
Richard Davey
312f4dab10 Start of alignBody method 2020-01-08 17:44:02 +00:00
Richard Davey
d6e0ba9b29 MatterPhysics.getConstraintLength is a new method that will return the length of the given constraint, as this is something you cannot get from the constraint properties directly. 2020-01-08 14:41:24 +00:00
Richard Davey
ae8bfbc013 Added missing JSDocs 2020-01-08 12:15:29 +00:00
Richard Davey
2859eb6a68 Added new Set Body Config 2020-01-08 12:15:17 +00:00
Richard Davey
4e8c676895 Full JSDocs coverage! 2020-01-08 11:55:35 +00:00
Richard Davey
49556021ef New constraint type defs 2020-01-08 11:55:24 +00:00
Richard Davey
ac92fbe1b0 Lots of JSDoc updates. Also removed velocity and force methods as they don't belong in the Factory. 2020-01-08 11:15:30 +00:00
Richard Davey
86edd99248 inverseMass is a required property! Also removed duplicate jsdoc 2020-01-08 11:15:02 +00:00
Richard Davey
2ac0562fb6 Updated JSDocs 2020-01-08 11:14:40 +00:00
Richard Davey
6a8bce9250 Added essential new type defs 2020-01-08 11:14:26 +00:00
Richard Davey
b908ebdda2 Added fromSVG method 2020-01-08 01:50:51 +00:00
Richard Davey
279829b414 Added JSDocs 2020-01-07 17:54:47 +00:00
Richard Davey
868d599832 Added JSDocs 2020-01-07 17:31:41 +00:00
Richard Davey
99df00244b Reduced default anchor size 2020-01-07 17:31:29 +00:00
Richard Davey
2b1ce933af The internal Matter Composite.setModified function will now emit a compositeModified event, which the Matter World listens for, if debug draw is enabled, so it can update the composite children render styles. 2020-01-07 17:20:31 +00:00
Richard Davey
a2c1377131 You can now set gravity: false in your Matter Config and it will reset gravity from the defaults to zero. 2020-01-07 16:38:13 +00:00
Richard Davey
105fb64b4f Removed spaces 2020-01-07 14:39:22 +00:00
Richard Davey
2b66f81d28 Final config structure and values 2020-01-07 14:02:38 +00:00
Richard Davey
8527e10d64 Added renderCollisions and renderSeparations 2020-01-07 14:02:28 +00:00
Richard Davey
c0e61cf2be Added renderBodyVelocity 2020-01-07 12:56:30 +00:00
Richard Davey
334f17439e Update MatterDebugConfig.js 2020-01-07 12:39:31 +00:00
Richard Davey
ad1891cd8d Added renderBodyBounds and renderBodyAxes methods 2020-01-07 12:39:27 +00:00
Richard Davey
0a801cbac4 Added World.renderGrid method.
Renamed showBodyPosition to showPositions
2020-01-07 11:56:39 +00:00
Richard Davey
76d2c971f7 Added showSensor debug option 2020-01-07 00:28:37 +00:00
Richard Davey
64c12a9c60 Added showBodyPosition config option 2020-01-06 22:30:38 +00:00
Richard Davey
aa32235f5a Added applyForceFromPosition 2020-01-06 17:56:20 +00:00
Richard Davey
5b17e0e61e Added jsdocs 2020-01-05 23:55:45 +00:00
Richard Davey
beefcf09b6 Added jsdocs 2020-01-05 23:54:08 +00:00
Richard Davey
25339383f1 Added jsdocs 2020-01-05 23:48:49 +00:00
Richard Davey
c5675ae171 Added jsdocs 2020-01-05 23:47:25 +00:00
Richard Davey
ffb604c502 Added new setVelocity, setVelocityX, setVelocityY, setAngularVelocity, applyForce and applyForceFromAngle methods. 2020-01-04 12:31:27 +00:00
Richard Davey
ba4c82e140 Added jsdocs 2020-01-04 12:27:04 +00:00
Richard Davey
5e027f7031 Added JSDocs 2020-01-02 16:45:28 +00:00
Richard Davey
1e6e350f7f Typo fix 2020-01-02 01:57:26 +00:00
Richard Davey
7fdcfd540c Remove render.opacity as it's not valid for constraints 2020-01-01 20:02:15 +00:00
Richard Davey
58c8efc2e5 Added jsdocs 2020-01-01 17:33:45 +00:00
Richard Davey
64690cf987 Body.gravityScale is a new vector property that allows you to scale the effect of world gravity on a specific Body. 2019-12-21 08:29:57 +00:00
Richard Davey
29b0e96407
Merge pull request #4909 from samme/docs/arcade-physics-3
Docs for Arcade Physics
2019-12-18 14:29:51 +00:00
Richard Davey
5cb7d8484f Added Game Object level collision events 2019-12-18 02:22:37 +00:00
Richard Davey
a7c644454f Update PhysicsEditorParser.js 2019-12-17 18:04:10 +00:00
Richard Davey
e6b43a2f48 Improves jsdocs 2019-12-17 18:03:23 +00:00
Richard Davey
efcbd1e4e5 Added helper methods for setting body collision callbacks 2019-12-17 16:42:46 +00:00
Richard Davey
f64d3e59d0 Per-body collision callbacks 2019-12-17 16:42:30 +00:00
Richard Davey
0d62f60f60 Removed un-used properties, functions and docs 2019-12-17 16:42:16 +00:00
Richard Davey
21a6458608 Added new collision pair type defs 2019-12-17 16:41:58 +00:00
Richard Davey
ac124b8e20 Better handling of the runner config 2019-12-17 13:52:57 +00:00
Richard Davey
1412e1f4f9 Added typedef for Matter Runner config 2019-12-17 13:52:46 +00:00
Richard Davey
a158b14228 Matter.World.has is a new method that will take a Matter Body, or Game Object, and search the world for it. If found, it will return true. 2019-12-17 13:15:15 +00:00
Richard Davey
67a6fa81f9 Added jsdocs and property 2019-12-17 13:08:32 +00:00
Richard Davey
d260643c61 Stricter checks against body removal and addition 2019-12-17 13:07:16 +00:00
Richard Davey
29525868ff Added jsdocs 2019-12-17 13:06:11 +00:00
Richard Davey
43b111dc3e Removed unused code and tidied up the Phaser specific additions 2019-12-17 13:06:01 +00:00
Richard Davey
9c43681b79 Added jsdocs and off handler 2019-12-17 13:05:37 +00:00
Richard Davey
37b2fbd044 Removed calcOffset 2019-12-17 13:05:16 +00:00
Richard Davey
1a50665ce1 Function not triggering properly. Adding to Body directly. 2019-12-17 02:14:54 +00:00
Richard Davey
819a6b20ae Walking through Matter compare merge 2019-12-16 17:12:12 +00:00
Richard Davey
f9e5246af0 Refactored so ops are done when the engine udates, not when the dom updates 2019-12-13 19:41:47 +00:00
Richard Davey
87a8af35c5 Added in Matter Runner 2019-12-13 19:41:27 +00:00
Richard Davey
604531d70a Disable sync verts for now 2019-12-13 19:41:18 +00:00
Richard Davey
e117a679d2 Still fix sleeping 2019-12-13 01:16:54 +00:00
Richard Davey
63083882d3 MatterGameObject has a new optional boolean parameter addToWorld which lets you control if the Body should be added to the world or not. Useful for toggling off should you be merging pre-existing bodies with Game Objects. 2019-12-12 17:15:00 +00:00
samme
fa57f74b8f Docs for Arcade Physics 2019-12-12 08:14:53 -08:00
Richard Davey
7ba6e9fe6b Added setCompositeRenderStyle method 2019-12-12 13:31:47 +00:00
Richard Davey
093557a6ea Removed worldConstraint changes 2019-12-12 13:31:36 +00:00
Richard Davey
03e67e2c50 Added docs and Body level syncVerts property 2019-12-12 12:41:11 +00:00
Richard Davey
01fa4d2c54 Fix handling of centerOfMass 2019-12-11 16:06:15 +00:00
Richard Davey
7a2c434ffc Remove deprecated code 2019-12-11 16:06:01 +00:00
Richard Davey
4032f87368 Fixed handling deeply nested bodies 2019-12-11 16:05:52 +00:00
Richard Davey
4b14e489af Added start of fromJSON 2019-12-11 15:01:05 +00:00
Richard Davey
69eec0add9 Fixed overlap method 2019-12-11 15:00:51 +00:00
Richard Davey
c267662259 Update World.js 2019-12-11 15:00:41 +00:00
Richard Davey
30750d1208 Update PhysicsEditorParser.js 2019-12-11 13:07:04 +00:00
Richard Davey
826431c7fa Tidying up 2019-12-11 13:06:07 +00:00
Richard Davey
19fc914a5b PhysicsEditorParser.parseVertices now uses Bodies.flagCoincidentParts to avoid duplicating code. 2019-12-11 13:05:58 +00:00
Richard Davey
f5908fee8f Matter.Bodies.flagCoincidentParts is a new function that will flags all internal edges (coincident parts) on an array of body parts. This was previously part of the fromVertices function, but has been made external for outside use. 2019-12-11 13:05:49 +00:00
Richard Davey
bf00d63cc6 Body.syncVerts is a new function that will re-sync the vert positions with the body position. Called if Engine.syncVerts is set (which is now the default) 2019-12-10 17:53:44 +00:00
Richard Davey
a910a27349 Engine.syncVerts is a new Engine config property that allows you to run a vert re-sync at the end of the Engine step. This can help massively if you find you've got verts drifting out of alignment with the body position when using pointer contraints, or high velocity environments. Uses the new Engine._bodiesSync function. 2019-12-10 17:52:37 +00:00
Richard Davey
444bdf116f Debug tweaks 2019-12-10 17:50:04 +00:00
Richard Davey
c6bfaa8e4a Vertices.calcOffset is a new function that calculates the vert body position offset, used for keeping data in sync. 2019-12-10 17:49:41 +00:00
Richard Davey
4f3a524114 Update World.js 2019-12-10 14:02:50 +00:00
Richard Davey
b7343f3424 Bumped Matter Plugin versions to avoid console logs from Common.info and Common.warn. 2019-12-10 14:02:10 +00:00
Richard Davey
56929fb8c6 Removed use of Common.indexOf (no need for it) 2019-12-10 12:07:03 +00:00
Richard Davey
118aa3a941 Format fix 2019-12-10 12:05:12 +00:00
Richard Davey
0e95c1ad19 Merged Body.setCentre 2019-12-10 12:03:27 +00:00
Richard Davey
dc127081eb Merged new pointAWorld and pointBWorld functions 2019-12-10 12:01:58 +00:00
Richard Davey
257c00228b Removed un-used _requireGlobal function 2019-12-10 12:01:42 +00:00
Richard Davey
f22c3ad17d New fromPath reg exp 2019-12-10 12:01:24 +00:00
Richard Davey
5b17e35a87 Format tidy-up 2019-12-10 12:01:14 +00:00
Richard Davey
7bdcb5a892 Temp bounds debug 2019-12-10 02:42:16 +00:00
Richard Davey
b92e8e9a60 Moved position update to earlier (was too soon) 2019-12-09 17:13:10 +00:00
Richard Davey
eb254f0c5c If the Matter.Body config doesn't contain a position property, it will now default to using Vertices.centre(body.vertices) as the position. In most cases, this is what you need, so it saves having to pass it in the config object. 2019-12-09 13:22:55 +00:00
Richard Davey
c9adc01111 The Matter.PhysicsEditorParser has been updated so it no longer needs to set the render offsets, and instead uses the center of mass values. 2019-12-09 12:52:05 +00:00
Richard Davey
8f67dad4a5 Matter.setExistingBody, which is called interally whenever a Body is set on a Game Object, now uses the new centerOffset values to ensure that the texture frame is correctly centered based on the center of mass, not the Body bounds, allowing for much more accurate body to texture mapping with complex multi-part compound bodies. 2019-12-09 12:51:26 +00:00
Richard Davey
53314ca435 The Matter.Mass.centerOfMass component property now returns the pre-calculated Body centerOfMass property, which is much more accurate than the previous bounds offset value. 2019-12-09 12:49:55 +00:00
Richard Davey
9f012ebf86 Matter.Transform.centerOffsetX is a new read-only property available on all Matter Game Objects that returns the horizontal offset between the center of the frame and the center of mass. This can be used to allow for accurately mapping texture centers to the body center. 2019-12-09 12:48:51 +00:00
Richard Davey
50b511e872 Matter.Body.centerOfMass is a new property added to the Matter Body object that retains the center of mass coordinates when the Body is first created. 2019-12-09 12:45:44 +00:00
Richard Davey
7ae124ff6e Docs fix. 2019-12-09 08:57:24 +00:00
Richard Davey
44ff20d07e Added deltaXFinal and deltaYFinal methods. 2019-12-09 08:55:37 +00:00
Richard Davey
a123faafdc Added new intersects, overlap and collision filter methods. 2019-12-04 03:52:00 +00:00
Richard Davey
e7cac4ebe9 Removed old config values and now handles opacity properly 2019-12-04 03:14:06 +00:00
Richard Davey
aeb3d5af06 Removed old properties and added new ones 2019-12-04 03:13:44 +00:00
Richard Davey
22baba0749 Updated custom render properties 2019-12-04 03:13:02 +00:00
Richard Davey
59749ab519 Skip matching a body against itself 2019-12-04 03:12:46 +00:00
Richard Davey
9b8ce1b8e3 Adjust Resolver properties from matter config 2019-12-03 16:56:29 +00:00
Richard Davey
75e2f76f8f Update Collision.js 2019-12-03 16:56:16 +00:00
Richard Davey
76c81e19c3 Moved the render style methods to World and use them as part of the event proxy 2019-12-03 14:48:04 +00:00
Richard Davey
7d2f3b33b5 Added setBodyRenderStyle and setConstraintRenderStyle methods. 2019-12-03 14:06:32 +00:00
Richard Davey
c299b02542 Update MatterCollisionEvents.js 2019-12-03 14:06:15 +00:00
Richard Davey
9a0218b3da Fixed line style and updated parameter names. 2019-12-03 14:06:10 +00:00
Richard Davey
f050b148ec Rewrote plugin to tidy it up. 2019-12-03 10:43:35 +00:00
Richard Davey
e0ae756f0d Add the new collision events plugin. 2019-12-02 19:21:04 +00:00
Richard Davey
ca293d710f Proxy the add and remove events and better handle debug draw injection. 2019-12-02 19:20:54 +00:00
Richard Davey
bdbd74917a Added missing plugin configs. 2019-12-02 19:20:24 +00:00
Richard Davey
b38668eb5f Finished all the JSDocs, exposed all Matter modules and added the new point checking methods. 2019-12-02 19:20:13 +00:00
Richard Davey
d75fb5b918 Removed un-used render properties and added new ones 2019-12-02 19:19:42 +00:00
Richard Davey
c32368e03e Added the new ADD and REMOVE Matter World events 2019-12-02 19:19:21 +00:00
Richard Davey
b71d4059a7 100% JSDoc'd! 2019-12-02 15:07:44 +00:00
Richard Davey
4f8dd24df2 Handle legacy configs for now. 2019-11-28 16:19:03 +00:00
Richard Davey
2a4dadf3a7 Update MatterWorldConfig.js 2019-11-28 16:18:53 +00:00
Richard Davey
8a844fc4d3 Create MatterDebugConfig.js 2019-11-28 16:18:49 +00:00
Richard Davey
f126f28121 Split out the debug rendering process into single methods, so they can be called externally if required 2019-11-28 10:43:26 +00:00
Richard Davey
65008266d6 Fixed worldConstraint 2019-11-27 17:49:38 +00:00
Richard Davey
4a1b9691c8 Custom render values set? 2019-11-27 17:49:30 +00:00
Richard Davey
3d46304b6a Final new debug config added 2019-11-27 17:49:21 +00:00
Richard Davey
7b280e4fb2 Redoing debug config 2019-11-26 16:39:34 +00:00
Richard Davey
dc6b080091
Merge pull request #4874 from samme/feature/overlapCirc
Add ArcadePhysics#overlapCirc()
2019-11-20 22:02:15 +00:00
Richard Davey
e5421c4ebf Fixed namespace #4873 2019-11-20 22:00:17 +00:00
Richard Davey
ce2dbb7095
Merge pull request #4873 from samme/feature/group-type
Add `type` for Group, Arcade.Group, Arcade.StaticGroup
2019-11-20 21:54:10 +00:00
samme
b0f99db47d Add ArcadePhysics#overlapCirc() 2019-11-20 12:21:53 -08:00
samme
8585541e15 Add type for Group, PhysicsGroup, StaticPhysicsGroup 2019-11-20 11:53:38 -08:00
samme
e572921f38 Add targets argument to closest(), furthest()
And exclude `source` from targets
2019-11-13 09:56:37 -08:00
samme
c46ab84fd9 Use body center in closest, furthest 2019-11-04 16:11:38 -08:00
Anatoly Rybalchenko
03810ecccf Set 'part.angle' in 'Body.update' into matter-js 2019-10-05 02:02:30 +03:00
Richard Davey
3a8a1f7b05 Added the new customBoundsRectangle config properties 2019-10-02 16:03:52 +01:00
Richard Davey
f0ed52c033 Tidy-up the customBoundsRectangle changes 2019-10-02 16:03:36 +01:00
Richard Davey
4f4b69123e
Merge branch 'master' into arcade_body_custom_bounds 2019-10-02 15:41:49 +01:00
Richard Davey
2c5b552bd5 Formatting tweak 2019-10-01 13:29:05 +01:00
Richard Davey
b78dbd81ac Moved author block and fixed Body reset issue 2019-10-01 13:28:59 +01:00
Richard Davey
f16a16ba7d
Merge pull request #4729 from Gamefroot/arcade-physics-fps-fixes
Arcade physics fps fixes
2019-10-01 13:17:41 +01:00
Richard Davey
7584b9b17f
Merge pull request #4752 from funnisimo/separateCircle
FIX #4751 - Physics.Arcade.World.separateCircle - weird effects when …
2019-09-26 12:30:18 +01:00
Richard Davey
800aac5820
Merge pull request #4749 from funnisimo/hitTest
Fix for Issue #4748 - Physics.Arcade.Body.hitTest - bug with circles
2019-09-26 12:27:14 +01:00
Richard Davey
ddc1a136ce MatterPhysics.shutdown could try to access properties that may have been previously removed during the Game.destroy process, causing a console error. It now checks properties before removing events from them 2019-09-26 12:17:16 +01:00
Funnisimo
4455237967 need to do velocity based separation too 2019-09-19 14:13:07 -05:00
Funnisimo
b7ff2c02ae FIX #4751 - Physics.Arcade.World.separateCircle - weird effects when bounce=0 2019-09-13 11:34:11 -05:00
Funnisimo
4bffc5a341 updated for lint 2019-09-12 10:09:47 -05:00
Funnisimo
bfcfde52f9 FIX: #4748 Physics.Arcade.Body.hitTest - bug with circles 2019-09-12 10:02:01 -05:00
Richard Davey
5b10c07d2e ArcadePhysics.Body.checkWorldBounds would incorrectly report as being on the World bounds if the blocked.none flag had been toggled elsewhere in the Body. It now only sets if it toggles a new internal flag 2019-09-05 16:06:08 +01:00
Ben Richards
95d413dc3f Fix friction issues at low frame rates or repeated physics steps.
- Add `prevFrame` to hold previous frame positions (`prev` now holds
  previous step positions explicitly).
- Reset `prev` per step, fixing physics that relies on it.
- Remove `_reset` in favour of `moves`, which was all it ever checked.
  Ironically, `_reset` never reset itself.
- Remove some `postUpdate` property setting which is now unnecessary.
  The `prev` values now update just before they're used, so if you check
  them outside the physics step, they reflect the previous step.
- Reset `World#stepsLastFrame` per frame, so it won't get stuck on.
2019-08-29 10:06:10 +12:00
Ben Richards
fd0dd79417 Prevent objects from sinking into tilemaps at low frame rates.
Because `blocked` would be set by the first collision,
repeated steps would then skip it, and allow gravity or acceleration
to ignore tiles in that direction for those steps.
2019-08-29 10:06:10 +12:00
Richard Davey
b5d9ba3891 Added namespace for TS 2019-08-07 12:47:51 +01:00
Richard Davey
0de2695b07 PhysicsEditorParser has now been exposed under the Phaser.Physics.Matter namespace, so you can call methods on it directly. 2019-07-26 18:15:26 +01:00
Richard Davey
bb29aed88a Matter.Factory.constraint wouldn't allow a zero length constraint to be created due to a falsey check of the length argument. You can now set length to be any value, including zero, or leave it undefined to have it automatically calculated 2019-06-22 11:19:56 +01:00
Richard Davey
6c575ca20e Arcade.Events.WORLD_STEP is a new event you can listen to. It is emitted by the Arcade Physics World every time the world steps once. It is emitted _after_ the bodies and colliders have been updated. Fix #4289 2019-06-19 15:41:45 +01:00
Richard Davey
ef4b3cfe89 Improved update handler to cut down on body iteration and stepping without an update due. Fix #4529 2019-06-19 15:32:17 +01:00
Richard Davey
96298cf920 Added new resetFlags method and willStep and delta arguments to preUpdate. 2019-06-19 15:31:29 +01:00
Richard Davey
b917a0611f ESLint fix 2019-06-19 09:46:38 +01:00
Richard Davey
57fd8c9ce1
Merge pull request #4540 from BdR76/patch-2
drawDebug, display checkCollision sides
2019-06-19 09:28:31 +01:00
Richard Davey
932583402c
Merge pull request #4589 from samme/x/arcade-static-body-setSize
Change arguments to Arcade.StaticBody#setSize
2019-06-19 09:21:00 +01:00
samme
7bba56be16 Change arguments to StaticBody#setSize
`center` replaces `offsetX`, `offsetY`
2019-06-12 10:59:07 -07:00
Richard Davey
9c7b26260e StaticPhysicsGroup can now take a classType property in its Group Config and will use the value of it, rather than override it. If none is provided it'll default to ArcadeSprite. Fix #4401 2019-06-12 12:06:40 +01:00
Richard Davey
77859b1cdf Calling Arcade Physics Body.reset on a Game Object that doesn't have any bounds, like a Container, would throw an error about being unable to access getTopLeft. If this is the case, it will now set the position to the given x/y values 2019-06-11 18:20:56 +01:00
Markus Appel
5ff9b20668
Correct docs of arcade physics body member 2019-06-09 12:22:15 +02:00
samme
6a2c476557 Use defaultStrokeWidth in drawDebug() 2019-06-04 13:27:02 -07:00
Richard Davey
558f6aea55 JSDoc fixes 2019-06-04 16:01:37 +01:00
Richard Davey
17ad54b35b You can pass in a Body for a Matter Game Object to use 2019-06-01 10:53:05 +01:00
Richard Davey
63ead0cbc1 Added Matter.bodies 2019-05-31 19:42:49 +01:00
BdR76
717c89d79b
Changed if-statements to multiple lines
Changed the if-statements to multiple lines as per ESLint config
2019-05-31 13:15:23 +02:00
Richard Davey
897de33a64
Merge pull request #4554 from samme/types/group-classType
Remove GroupClassTypeConstructor type
2019-05-30 22:05:55 +01:00
Richard Davey
09318530a4 Matter.Factory.fromVertices can now take a vertices path string as its vertexSets argument, as well as an array of vertices. 2019-05-29 14:50:57 +01:00
samme
8e717d5588 Remove GroupClassTypeConstructor type 2019-05-23 15:10:40 -07:00
Richard Davey
d7af904bfa Added Matter velocity, angularVelocity and force methods 2019-05-21 14:23:32 +01:00
Richard Davey
478d6989c5 Expose the Matter.Body module 2019-05-20 17:13:05 +01:00
BdR76
f28df06bcf
drawDebug, display checkCollision sides
drawDebug, instead of rectangle only draw the sides where checkCollision is true, similar to debugger in layer
2019-05-19 14:49:15 +02:00
hizzd
4aa3d9f81a
Fixed separateCircle cause the position set NaN. 2019-05-11 20:52:57 +08:00
Richard Davey
c91ed91ce3 License link update 2019-05-10 16:15:04 +01:00
Richard Davey
e8f6bae7cb A Body with damping and drag enabled would fail to move if it went from zero velocity to a new velocity inside an update loop. It will now reset its speed accordingly and retain its new velocity 2019-05-10 12:28:06 +01:00
Richard Davey
a6341a97a8 Fixed Types references 2019-05-09 15:32:53 +01:00
Richard Davey
2008438919 Added new Matter World config def 2019-05-09 15:31:59 +01:00
Richard Davey
6955507ee0 Physics root type 2019-05-09 12:35:01 +01:00
Richard Davey
1531288301 Matter Types 2019-05-09 12:34:27 +01:00
Richard Davey
490dd62f2b Impact Types 2019-05-09 12:34:05 +01:00
Richard Davey
fbe2470f99 Arcade Physics Types 2019-05-09 12:33:37 +01:00
Richard Davey
e916dbe783 Math Types 2019-05-09 12:32:37 +01:00
Richard Davey
8e8b182359 Group Types 2019-05-09 11:56:16 +01:00
Richard Davey
ff9f7cf574 Always world step once 2019-05-08 15:43:01 +01:00
Richard Davey
18a924c39c Passing an _array_ of configuration objects to physics.add.group would ignore them and none of the children would be assigned a physics body. Fix #4511 2019-05-07 16:17:28 +01:00
Richard Davey
63ddc0b07d
Merge pull request #4279 from akuskis/Issue_#4256.Circles_collision
Fix circles collision #4256
2019-05-04 12:44:29 +01:00
Richard Davey
fda7772d3f Fixed jsdocs to flag arguments as optional. Fix #4506 2019-05-03 18:23:39 +01:00
Richard Davey
dcf2d44f4a Removed un-used properties 2019-05-03 17:38:37 +01:00
Richard Davey
bf741e962c Restored Arcade Physics v1 and merged in all the core changes 2019-05-03 17:28:06 +01:00
Richard Davey
11c1b458fa Phaser.Physics.Arcade.Events is now exposed in the namespace, preventing it from erroring if you use them in TypeScript. Fix #4481 2019-04-24 13:44:57 +01:00
Richard Davey
09487bbfc6 Added new resetCollisionIDs method re: #4334 2019-04-08 10:34:52 +01:00
Richard Davey
2ecaad5f03 Fixes use of static keyword. Fix #4458 2019-04-05 18:04:34 +01:00
Richard Davey
3075e088c7 Added directX and directY properties as well as setDirectPosition method. 2019-04-01 23:15:00 +01:00
Richard Davey
64d8f928d0 Fixed sleeping and strengthening direct control movement. 2019-04-01 17:19:38 +01:00
Richard Davey
e7334834ff Abort? Then abort. 2019-04-01 17:19:07 +01:00
Richard Davey
c907432c2b Refactoring to handle checkCollision better 2019-04-01 17:18:58 +01:00
Richard Davey
4ca877b32e Now returns area of intersection in a temp rectangle 2019-04-01 14:58:51 +01:00
Richard Davey
3e5358dded Dump CI to window for testing 2019-03-31 23:16:27 +01:00
Richard Davey
0f4e9f289d Fixed issue with delta = 1 2019-03-31 23:16:13 +01:00
Richard Davey
4d660f2f51 Minimum displacement linear equation solver finally working properly, yay! 2019-03-29 17:07:48 +00:00
Richard Davey
c636c58ff8 Working out incorrect face at high speeds 2019-03-29 00:10:58 +00:00
Richard Davey
b97bf51329 Removed positionIterations 2019-03-28 23:35:09 +00:00
Richard Davey
b99e680f6b Fixed swizzle and embedded abort 2019-03-28 23:33:00 +00:00
Richard Davey
535388b828 Added Distance Threshold and seeking 2019-03-28 23:32:46 +00:00
Richard Davey
5589374e71 Removed debugging 2019-03-28 23:32:24 +00:00
Richard Davey
14781003b3 Temp logs on 2019-03-28 14:58:57 +00:00
Richard Davey
cb77405031 Better seek handling 2019-03-28 14:58:51 +00:00
Richard Davey
bb058dc7ba Moved OverlapRect to a component and added option to scan both dynamic and static bodies 2019-03-28 14:10:03 +00:00
Richard Davey
9577f3e612 Added condition to resolve fast moving body penetration hitting the wrong face 2019-03-28 14:09:45 +00:00
Richard Davey
2317cb216e Emits new TOUCH event 2019-03-27 15:53:19 +00:00
Richard Davey
5eebdff3ca Now properly handles body face blocking 2019-03-27 15:53:01 +00:00
Richard Davey
13181e2238 Embedded? Don't block then. 2019-03-27 15:52:45 +00:00
Richard Davey
07149fd737 New TOUCH event 2019-03-27 15:52:31 +00:00
Richard Davey
7dbda9fe62 Added new arguments to method 2019-03-27 15:52:18 +00:00
Richard Davey
28b41254ba Removed unused code 2019-03-27 15:52:04 +00:00
Richard Davey
7a05c205b1 Docs fix 2019-03-27 15:51:55 +00:00
Richard Davey
7ae4a441e1 Added onTouch event flag and setCheckCollision methods 2019-03-27 15:51:43 +00:00
Richard Davey
e5f03f02db Added isBody boolean. 2019-03-27 11:54:08 +00:00
Richard Davey
a67792ada6 Handle non-Game Object Body collision 2019-03-27 11:53:56 +00:00
Richard Davey
cc1b96a309 The Body.setCollideWorldBounds method has two new optional arguments bounceX and bounceY which, if given, will set the World Bounce values for the body. 2019-03-27 11:53:34 +00:00
Richard Davey
2b4568cf05 Body no longer sleeps if rotating and fixed moving a rebounding object 2019-03-27 10:46:42 +00:00
Richard Davey
7dbb502616 Fixed jsdocs references 2019-03-27 09:50:58 +00:00
Richard Davey
596803a434 Exposed the overlap functions 2019-03-27 09:50:48 +00:00
Richard Davey
168e184d04 You can now create a Body or StaticBody directly 2019-03-27 09:50:36 +00:00
Richard Davey
6e3d4bac6d Removed un-needed files 2019-03-27 09:50:20 +00:00
Richard Davey
adb28d2f6e Added new Rectangle Arcade Physics Body type 2019-03-27 00:21:03 +00:00
Richard Davey
c819599304 Use of a Game Object bound to a body is now optional 2019-03-27 00:20:49 +00:00
Richard Davey
811ed0e340 Dynamic and Static both now extend the Base Body. 2019-03-26 16:51:15 +00:00
Richard Davey
2e5e438ec4 Added a new Base Body class to extend from. Saves a lot of duplication. 2019-03-26 16:51:01 +00:00
Richard Davey
5bb2161d49 Fixed issue with non zero origins 2019-03-26 15:29:58 +00:00
Richard Davey
ab2f489c5a Renamed ambiguous movingX/Y, also broke out moveX to checkX and tidied up more 2019-03-26 13:07:57 +00:00
Richard Davey
0b8fb1a21e Much better hard blocking flag sets 2019-03-26 13:07:25 +00:00
Richard Davey
d942d28a81 Swap to use canMove and also new moveX/Y methods 2019-03-26 13:07:04 +00:00
Richard Davey
5242a62221 Comment out logs 2019-03-26 13:06:45 +00:00
Richard Davey
469b74b489 Handle single face intersects 2019-03-26 13:06:26 +00:00
Richard Davey
b7f1888549 Work out the dominant face even if not intersecting, or if perfectly aligned 2019-03-26 00:05:26 +00:00
Richard Davey
9b65f1bcc6 Moved sleep checks around 2019-03-26 00:05:09 +00:00
Richard Davey
108e2e5d7f Added GravityX and reduced iterations to 1 for testing 2019-03-26 00:04:55 +00:00
Richard Davey
c58526fc74 Tidying up and resolving fractional comparisons 2019-03-25 17:25:39 +00:00
Richard Davey
7171d95578 Log out some test data 2019-03-25 17:25:25 +00:00
Richard Davey
c8ec524068 Debug tests 2019-03-25 17:25:17 +00:00
Richard Davey
74be0955ca Lots of small tweaks 2019-03-25 17:25:11 +00:00
Richard Davey
e83db95f77 Use ColInfo 2019-03-25 17:25:03 +00:00
Richard Davey
075e030fb1 Zero out fractional intersections 2019-03-25 17:24:48 +00:00
Richard Davey
17d4600f2f Updating separate method 2019-03-25 12:56:01 +00:00
Richard Davey
21df050e88 Works using ColInfo object now 2019-03-25 12:55:52 +00:00
Richard Davey
df55ffd32a Lots of little fixes 2019-03-25 12:55:41 +00:00
Richard Davey
3e499831cc Added functions for left / right checks 2019-03-25 12:55:31 +00:00
Richard Davey
8c825692af Added most interesting face result 2019-03-25 12:55:18 +00:00
Richard Davey
eec2f4cac1 Single functions to handle the data 2019-03-25 12:55:08 +00:00
Richard Davey
e976721321 Start of the update to make it work across both axis 2019-03-24 23:31:31 +00:00
Richard Davey
d3460ba20f Only needs CollisionInfo 2019-03-24 23:31:20 +00:00
Richard Davey
94bebab24d Silence logs for now 2019-03-24 23:31:11 +00:00
Richard Davey
9dcd3569b4 Added new X axis functions 2019-03-24 23:30:57 +00:00
Richard Davey
1f07eaa79f Testing rideable bodies 2019-03-24 23:30:38 +00:00
Richard Davey
e017691c68 The ScaleMode Component has been removed from every Game Object, and along with it the scaleMode property and setScaleMode method. These did nothing anyway as they were not hooked to the render pipeline and scale mode should be set on the texture, not the Game Object. Fix #4413 2019-03-24 23:07:27 +00:00
Richard Davey
a85e6283ec All of the Arcade Physics Components are now available directly under the Phaser.Physics.Arcade.Components namespace. Fix #4440 2019-03-24 22:51:34 +00:00