Cocos2d-x  v4
EventListenerPhysicsContact Class Reference

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 EventListenerPhysicsContactclone () 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...
 
Refautorelease ()
 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 EventListenerPhysicsContactcreate ()
 Create the listener.
 
- Static Public Member Functions inherited from EventListenerCustom
static EventListenerCustomcreate (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.
 

Detailed Description

Contact listener.

It will receive all the contact callbacks.

Member Function Documentation

◆ checkAvailable()

virtual bool checkAvailable ( )
overridevirtual

Check the listener is available.

Returns
True if there's one available callback function at least, false if there's no one.

Reimplemented from EventListenerCustom.

Member Data Documentation

◆ onContactPreSolve

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.

◆ onContactPostSolve

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

◆ onContactSeparate

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.


The documentation for this class was generated from the following file: