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. | |
Public Member Functions inherited from EventListener | |
virtual | ~EventListener () |
Destructor. More... | |
void | setEnabled (bool enabled) |
Enables or disables the listener. More... | |
bool | isEnabled () const |
Checks whether the listener is enabled. More... | |
Public Member Functions inherited from Ref | |
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 Public Member Functions inherited from EventListenerCustom | |
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... | |
Public Attributes inherited from Ref | |
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 | |
Public Types inherited from EventListener | |
enum | Type |
Type Event type. | |
Protected Member Functions inherited from EventListenerCustom | |
EventListenerCustom () | |
Constructor. | |
bool | init (const ListenerID &listenerId, const std::function< void(EventCustom *)> &callback) |
Initializes event with type and callback function. | |
Protected Member Functions inherited from EventListener | |
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.