WorldContactListener class
Listens to the entire World's contact events.
It propagates the contact events (beginContact, endContact, preSolve, postSolve) to ContactCallbackss when a Body or at least one of its
If the Body userData
is set to a ContactCallbacks the contact events
of this will be called when any Body's fixture contacts another Fixture.
If instead you wish to be more specific and only trigger contact events
when a specific Body's fixture contacts another Fixture, you can
set the fixture userData
to a ContactCallbacks.
If the colliding Fixture userData
and Body userData
are null
, then
the contact events are not called.
The described behavior is a simple out of the box solution to propagate contact events. If you wish to implement your own logic you can subclass ContactListener and provide it to your Forge2DGame.
- Inheritance
-
- Object
- ContactListener
- WorldContactListener
Constructors
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
beginContact(
Contact contact) → void -
Called when two fixtures begin to touch.
override
-
endContact(
Contact contact) → void -
Called when two fixtures cease to touch.
override
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
postSolve(
Contact contact, ContactImpulse impulse) → void -
This lets you inspect a contact after the solver is finished. This is
useful for inspecting impulses.
Note: the contact manifold does not include time of impact impulses, which
can be arbitrarily large if the sub-step is small. Hence the impulse is
provided explicitly in a separate data structure.
Note: this is only called for contacts that are touching, solid, and
awake.
impulse
this is usually a pooled variable, so it will be modified after this calloverride -
preSolve(
Contact contact, Manifold oldManifold) → void -
This is called after a contact is updated. This allows you to inspect a
contact before it goes to the solver. If you are careful, you can modify
the contact manifold (e.g. disable contact).
A copy of the old manifold is provided so that you can detect changes.
Note: this is called only for awake bodies.
Note: this is called even when the number of contact points is zero.
Note: this is not called for sensors.
Note: if you set the number of contact points to zero, you will not
get an EndContact callback. However, you may get a BeginContact callback
the next step.
Note: the oldManifold parameter is pooled, so it will be the same object
for every callback for each thread.
override
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited