Contact listener. More...
Inherits EventListenerCustom.
Inherited by EventListenerPhysicsContactWithBodies, EventListenerPhysicsContactWithGroup, and EventListenerPhysicsContactWithShapes.
Public Member Functions | |
virtual bool | checkAvailable () override |
Check the listener is available. More... | |
virtual EventListenerPhysicsContact * | clone () override |
Clone an object from this listener. | |
![]() | |
virtual | ~EventListener () |
Destructor. More... | |
void | setEnabled (bool enabled) |
Enables or disables the listener. More... | |
bool | isEnabled () const |
Checks whether the listener is enabled. More... | |
![]() | |
void | retain () |
Retains the ownership. More... | |
void | release () |
Releases the ownership immediately. More... | |
Ref * | autorelease () |
Releases the ownership sometime soon automatically. More... | |
unsigned int | getReferenceCount () const |
Returns the Ref's current reference count. More... | |
virtual | ~Ref () |
Destructor. More... | |
Static Public Member Functions | |
static EventListenerPhysicsContact * | create () |
Create the listener. | |
![]() | |
static EventListenerCustom * | create (const std::string &eventName, const std::function< void(EventCustom *)> &callback) |
Creates an event listener with type and callback. More... | |
Public Attributes | |
std::function< bool(PhysicsContact &contact)> | onContactBegin |
It will called at two shapes start to contact, and only call it once. | |
std::function< bool(PhysicsContact &contact, PhysicsContactPreSolve &solve)> | onContactPreSolve |
Two shapes are touching during this step. More... | |
std::function< void(PhysicsContact &contact, const PhysicsContactPostSolve &solve)> | onContactPostSolve |
Two shapes are touching and their collision response has been processed. More... | |
std::function< void(PhysicsContact &contact)> | onContactSeparate |
It will called at two shapes separated, and only call it once. More... | |
![]() | |
unsigned int | _ID |
object id, ScriptSupport need public _ID | |
int | _luaID |
Lua reference id. | |
void * | _scriptObject |
scriptObject, support for swift | |
bool | _rooted |
When true, it means that the object was already rooted. | |
Additional Inherited Members | |
![]() | |
enum | Type |
Type Event type. | |
![]() | |
EventListenerCustom () | |
Constructor. | |
bool | init (const ListenerID &listenerId, const std::function< void(EventCustom *)> &callback) |
Initializes event with type and callback function. | |
![]() | |
EventListener () | |
Constructor @js ctor. | |
bool | init (Type t, const ListenerID &listenerID, const std::function< void(Event *)> &callback) |
Initializes event with type and callback function @js NA. | |
Contact listener.
It will receive all the contact callbacks.
|
overridevirtual |
Check the listener is available.
Reimplemented from EventListenerCustom.
std::function<bool(PhysicsContact& contact, PhysicsContactPreSolve& solve)> onContactPreSolve |
Two shapes are touching during this step.
Return false from the callback to make world ignore the collision this step or true to process it normally. Additionally, you may override collision values, restitution, or surface velocity values.
std::function<void(PhysicsContact& contact, const PhysicsContactPostSolve& solve)> onContactPostSolve |
Two shapes are touching and their collision response has been processed.
You can retrieve the collision impulse or kinetic energy at this time if you want to use it to calculate sound volumes or damage amounts. See cpArbiter for more info
std::function<void(PhysicsContact& contact)> onContactSeparate |
It will called at two shapes separated, and only call it once.
onContactBegin and onContactSeparate will called in pairs.