Commit graph

323 commits

Author SHA1 Message Date
Richard Davey
1518f49c23 Finally traced down the culprit. Now to resolve. 2019-03-20 17:14:44 +00:00
Richard Davey
0f59b326f6 Sleeping can now force a position 2019-03-20 14:59:53 +00:00
Richard Davey
1c81425771 Add forceY arguments 2019-03-20 10:40:32 +00:00
Richard Davey
bf25e424f0 Added support for minVelocity and fixed zero gravity rebound issue 2019-03-20 04:06:53 +00:00
Richard Davey
81e2851b37 Moved sleeping to new function and made stronger 2019-03-20 01:28:00 +00:00
Richard Davey
5dcd844701 Added world blocked debug color 2019-03-20 00:08:23 +00:00
Richard Davey
87e9f8e62d Don't reforce a forced position 2019-03-20 00:02:16 +00:00
Richard Davey
68c8bd3af2 Removed logs array and tidying up the flow 2019-03-19 23:21:48 +00:00
Richard Davey
d59617a627 Never ending debugging ahoy. 2019-03-18 17:17:59 +00:00
Richard Davey
5485c07b32 Fixed world gravity rebound 2019-03-18 14:55:54 +00:00
Richard Davey
df0c76569f Added world rebounds handler 2019-03-18 14:12:52 +00:00
Richard Davey
1306ad2f4a Splitting up the process of checking and separating, merging results back into Body
Body now tracks previously blocked so it can test block status before update happens.
2019-03-18 08:08:46 +00:00
Richard Davey
2e63be9dd8 Added setWorldBlocked methods 2019-03-15 19:22:32 +00:00
Richard Davey
3e967ab300 Move sleep iterations to property and add wake method 2019-03-15 13:31:57 +00:00
Richard Davey
bdde075643 Implemented sleeping and much better debug drawing 2019-03-15 12:53:59 +00:00
Richard Davey
b635458ebb More resting tests 2019-03-14 17:20:47 +00:00
Richard Davey
54612b55fb Adding flip flop test 2019-03-14 14:52:07 +00:00
Richard Davey
07eea60143 Removed wasBlocked and tidied up 2019-03-14 14:16:25 +00:00
Richard Davey
dc31e39e01 Pushing to carry on debugging at home 2019-03-13 17:27:11 +00:00
Richard Davey
395e4d0554 Cache vars 2019-03-13 02:26:52 +00:00
Richard Davey
5b4b2d2fa9 Fixed issue re: would bounce 2019-03-11 22:47:59 +00:00
Richard Davey
b228e23dfd Added blocked debug 2019-03-11 17:28:43 +00:00
Richard Davey
59859e93a7 Reset velocity on world bounds and blocked by setting 2019-03-11 12:26:58 +00:00
Richard Davey
932f70cea2 Removed logging and handled bounds collision 2019-03-11 11:05:42 +00:00
Richard Davey
89e33ae53e Testing. Please do not use this build, it will break AP. 2019-03-11 09:19:41 +00:00
Richard Davey
e1f9e31e9f Added setTouching and setBlocked methods + refactored the way world bounds collision is done 2019-03-08 20:10:49 +00:00
Richard Davey
0ee2442597 Bumping to 3.17.0 2019-03-07 12:31:06 +00:00
Richard Davey
6095ab0ef6 Split the Body step up into preUpdate, update and postUpdate. Also tidied up the postUpdate method. 2019-03-05 14:17:57 +00:00
sky-coding
bab6a0bd69 remove erroneous doc comment parameter 2019-02-20 20:48:09 -08:00
Richard Davey
3bb73c5664 Fixed Group defs and completed Arcade Physics defs 2019-02-13 14:45:36 +00:00
Richard Davey
ebe4af217c lint fix 2019-01-24 00:30:44 +00:00
Richard Davey
cf2095f0c8 The Arcade Physics Body has a new property maxSpeed which limits the vector length of the Body velocity. You can set it via the method setMaxSpeed and it is applied in the World.computeVelocity method 2019-01-24 00:26:29 +00:00
Richard Davey
5494f6ac79 Arcade Physics Events 2019-01-17 14:04:36 +00:00
Richard Davey
aa341854c7 Happy New Year 2019-01-15 16:20:22 +00:00
Francois
7033297aa3 Use a custom bounds rectangle for the Arcade Body to overwrite the world bounds 2018-12-15 22:08:09 +01:00
Richard Davey
1a407bc4f5 ArcadePhysics.Body.destroy will now only add itself to the World pendingDestroy list if the world property exists. This prevents Cannot read property 'pendingDestroy' of undefined errors if you try to delete a physics body in a callback and then immediately change Scene (which tells the physics work to also delete all bodies) 2018-12-06 14:47:06 +00:00
Richard Davey
96b9db5cb7
Merge pull request #4150 from samme/docs/misc
Docs updates
2018-11-20 10:45:54 +00:00
samme
b5a2d9d0cf Docs for Arcade Physics
Minor additions/corrections
2018-11-07 09:43:43 -08:00
samme
7ff8d51f98 Docs for input and physics events 2018-10-24 12:14:44 -07:00
Richard Davey
f26c869c61
Merge pull request #4069 from samme/feature/drawDebug
Use defaultStrokeWidth in Arcade.Body#drawDebug()
2018-10-19 13:27:45 +01:00
sam
467f165bf4
JSDocs wrong Boolean on checkCollision description
L647 "checkCollision.none = false to disable collision checks" this is false way description, changed to "= true"
As of pull request: photonstorm/phaser3-docs#75
2018-10-19 06:42:25 +08:00
Richard Davey
a043cc88ea Changed version number 2018-10-12 18:32:52 +01:00
Richard Davey
a9938baec6
Merge pull request #4070 from samme/feature/arcade-group-config-enable
Add PhysicsGroupConfig.enable, Arcade.Body#setEnable()
2018-10-12 18:29:58 +01:00
Richard Davey
4b1c762296 Updated @memberOf to @memberof 2018-10-10 10:49:13 +01:00
Richard Davey
a9063604dc Replace @readOnly with @readonly 2018-10-09 13:40:00 +01:00
samme
5f4f5e6cfc Merge branch 'master' into feature/arcade-group-config-enable 2018-09-29 14:07:09 -07:00
Richard Davey
37076516e2
Merge branch 'master' into docs/arcade-physics-2 2018-09-28 11:07:44 +01:00
samme
536555236f Add PhysicsGroupConfig.enable, Arcade.Body#setEnable() 2018-09-26 10:25:45 -07:00
samme
5d38357533 Use defaultStrokeWidth in Arcade.Body#drawDebug() 2018-09-26 09:50:48 -07:00
Richard Davey
8cc7650f8c Arcade Physics Bodies will now sync the display origin of the parent Game Object to the body properties as part of the updateBounds call. 2018-09-26 17:15:22 +01:00
samme
6a8e5d2082 Correct descriptions for customSeparateX, customSeparateY 2018-09-25 13:25:47 -07:00
samme
817720b42c Correct description for Arcade.Body#maxVelocity 2018-09-24 16:58:00 -07:00
samme
2a51d6b70f Arcade Physics docs revisions 2018-09-24 12:12:56 -07:00
Richard Davey
7c55e65543 Arcade Physics Body deltaX and deltaY methods will now return the previous steps delta values, rather than zero. Fix #3987 2018-09-04 12:16:24 +01:00
Richard Davey
00a31d2d88 Updated docs. Close #3997 2018-09-01 10:14:22 +01:00
Richard Davey
2c525845be The Arcade Physics Body _tempMatrix property has been removed. It was only used if the Body's Game Object had a parent. The matrix has been moved to the World instance instead, shared by all bodies. 2018-08-29 16:06:13 +01:00
Richard Davey
4bdb0de312 The Arcade Physics Body.speed property is now set whenever you set the velocity via setVelocity or setVelocityX or setVelocityY which stops the body velocity being reset to zero if useDamping is enabled. Fix #3888 2018-08-08 17:31:22 +01:00
Richard Davey
3d23013b86 Body setSize changes to fix #3863 PR 2018-07-31 09:39:22 +01:00
tarsupin
79d64abaa3
Add spaces after ifs 2018-07-24 20:06:18 -05:00
tarsupin
7af6e5477f
Empty params reset to current texture size
If the width and height aren't provided, it resets the body's size to match the current frame of the game object's texture.
2018-07-24 19:53:41 -05:00
Richard Davey
e7fec396e1 If a Body collides with a Static Body it will now set the blocked properties accordingly 2018-06-03 21:17:33 +01:00
Richard Davey
579c6ba607 Body.useDamping is a new boolean property that allows you to use a damping effect for drag, rather than the default linear deceleration. 2018-06-03 17:08:08 +01:00
Richard Davey
586d1827e0 Removed dirty property, optimized update loop, refactored postUpdate for fixed time step 2018-06-01 19:18:40 +01:00
Richard Davey
de8462efed Added default values and tidied up docs a little 2018-05-22 16:19:18 +01:00
samme
24efda7aca Add allowDrag, allowGravity, allowRotation to PhysicsGroup config 2018-05-16 10:36:23 -07:00
samme
a70fb6aee9 Add docs for Arcade Physics 2018-05-09 21:28:52 -07:00
Richard Davey
30d73a0197 Container can now be assigned an arcade physics body 2018-04-11 13:37:38 +01:00
Richard Davey
f80db91429 Allowing to work with Containers 2018-04-11 13:17:53 +01:00
orblazer
11845f9d6d Fix "object" types on Physics and Math 2018-03-21 14:15:25 +01:00
orblazer
af3c03a3cb Update JSDoc on "Arcade" physics 2018-03-19 00:29:46 +01:00
Sean Bohan
4cde28fecd Forgot to devide width by 2 2018-03-16 14:02:41 +08:00
Sean Bohan
72e82ecf48 Fix debug draw of scaled arcade body 2018-03-16 14:02:41 +08:00
Sean Bohan
3f2e63fc17 Fix arcade body does not align with scaled parent object.
When a game object scaled, arcade body still calculate its position based on its original size instead of scaled one.
2018-03-01 09:02:04 +08:00
Richard Davey
218b4e4a52
Merge pull request #3285 from samme/docs/onWorldBounds
Describe Arcade.Body#onWorldBounds
2018-02-28 20:48:31 +00:00
Richard Davey
921d7e317a Arcade Physics Bodies didn't apply the results of allowRotation to the parent Game Object. 2018-02-27 01:08:55 +00:00
samme
36d91e9955 Describe Arcade.Body#onWorldBounds 2018-02-26 11:27:57 -08:00
Richard Davey
b36dd17430 Removed pendingDestroy and opted for easier Set iteration.
Updated Body.reset so it resets the Sprite as well, otherwise the Body remains stuck on the next update loop.
2018-02-15 01:49:55 +00:00
Richard Davey
e68329f763 Fixed version numbers 2018-02-14 19:55:00 +00:00
Richard Davey
24e8f7a119 Body.destroy is now flag based, cleared by the World.
Added pendingDestroy flag to handle body destruction within events or collider iterations.
2018-02-14 19:36:34 +00:00
Richard Davey
d1f5f8a82b Added jsdocs 2018-02-12 16:01:21 +00:00
Richard Davey
e0899bfa00 Added jsdocs 2018-02-09 03:44:23 +00:00
Richard Davey
c625b8735b Updated to using Event Emitter for all key managers and game objects. Events are now dispatched directly using arguments instead of Event objects, all managers updated to emit directly. 2018-01-12 17:09:21 +00:00
Michael Hadley
e3699aaea0 Remove unnecessary Arcade Body#tilePadding 2018-01-10 19:34:22 -06:00
Richard Davey
d8f1ba03e9 Moved repository location 2018-01-09 21:43:56 +00:00
Richard Davey
0d90f75b5f Splitting the dev branch up into versions. 2016-11-22 01:36:56 +00:00
Richard Davey
4d4344bf03 Arcade Physics updated to use new Transform system. 2016-11-11 02:20:31 +00:00
Richard Davey
8a78029e2b Merge pull request #2728 from samme/issue-2720
Add a hint for resizing Body of scaled Sprites
2016-09-07 23:27:34 +01:00
James
42ca43d98c updated docs on Arcade body's setSize 2016-08-30 17:08:25 -05:00
samme
792ae127bf Add a hint for resizing Body of scaled Sprites 2016-08-29 12:50:05 -07:00
samme
b05becf962 Correct docs:
* `angularAcceleration`, `angularDrag`, and `angularVelocity` are measured in degrees.
* `angle` describes `velocity` and is unrelated to angular motion
2016-08-22 12:05:12 -07:00
Richard Davey
19342fa3af ArcadePhysics Body.rotation now reads its initial value from sprite.angle instead of sprite.rotation. The property was immediately replaced with the correct value in Body.preUpdate regardless, but it keeps it consistent (thanks @samme #2708) 2016-08-21 10:27:58 +01:00
Richard Davey
6947057427 The property checkCollision.none in the ArcadePhysics.Body class was available, but never used internally. It is now used and checked by the separate method. By setting checkCollision.none = true you can disable all collision and overlap checks on a Body, but still retain its motion updates (thanks @samme #2661) 2016-07-23 10:01:38 +01:00
Richard Davey
46c20ab00a The property checkCollision.none has been removed from the ArcadePhysics.Body class. It was never used internally, so lead to confusion about its use. To disable a body, use body.enable = false (thanks @samme #2661) 2016-07-23 09:43:01 +01:00
Boniatillo.com
3d1b10c310 jsdoc fix: replace #onTop for #onCeiling
Modified the jsdoc of Phaser.Arcade.Body.onCeiling, by replacing the #onTop reference for #onCeiling.
2016-07-19 08:32:34 -04:00
photonstorm
dfd9203e0a onWorldBounds now sends the bounds it collided with. 2016-07-08 11:28:45 +01:00
Richard Davey
c0ba439e82 ArcadePhysics.Body.onCollide is a new Signal that is dispatched whenever the Body collides with another Body. Due to the potentially high volume of signals this could create it is disabled by default. To use this feature set this property to a Phaser.Signal: sprite.body.onCollide = new Phaser.Signal() and it will be called when a collision happens, passing two arguments: the sprites which collided.
ArcadePhysics.Body.onOverlap is a new Signal that is dispatched whenever the Body overlaps with another Body. Due to the potentially high volume of signals this could create it is disabled by default. To use this feature set this property to a Phaser.Signal: `sprite.body.onOverlap = new Phaser.Signal()` and it will be called when an overlap happens, passing two arguments: the sprites which collided.
2016-07-07 23:16:18 +01:00
Richard Davey
6ba3c9401f ArcadePhysics.Body.setCircle is a new method that allows you to define an Arcade Physics Body as being a circle instead of a rectangle. You can control the radius of the body and the offset from the parent sprite.
ArcadePhysics.World.separateCircle is a new method that handles all circular body collisions internally within Arcade Physics (thanks @VitaZheltyakov)

All of the Arcade Physics internal methods, such as `collideGroupVsSelf`, `collideSpriteVsSprite` and so on, have been updated to work with circular body shapes (thanks @VitaZheltyakov)

ArcadePhysics.Body.onWorldBounds is a new Signal that is dispatched whenever the Body collides with the world bounds, something that was previously difficult to detect. Due to the potentially high volume of signals this could create it is disabled by default. To use this feature set this property to a Phaser.Signal: `sprite.body.onWorldBounds = new Phaser.Signal()` and it will be called when a collision happens, passing one argument: the sprite on which it occurred.
2016-07-07 21:58:39 +01:00
photonstorm
261155a683 Merged the arcade-circles branch back into 2.6 and tidied up lots of the source code. Needs checking as not working properly with rect vs. circle, but fine with circle vs. circle. 2016-07-07 16:45:10 +01:00
photonstorm
4da3b15ae2 Renamed alignTo to alignIn, and added the new method alignTo, to allow for Sprite to Sprite alignment. Updated all of the Bounds and TS defs. 2016-06-16 17:01:51 +01:00
Richard Davey
70be74cb36 Lots of work on Body.moveTo and Body.moveFrom. Now working nicely. 2016-06-15 04:12:47 +01:00