Contact listener. More...
#include <CCPhysicsContact.h>
Public Member Functions | |
virtual bool | checkAvailable () override |
Check the listener is available. More... | |
virtual EventListenerPhysicsContact * | clone () override |
Clone an object from this listener. More... | |
![]() | |
bool | init (const ListenerID &listenerId, const std::function< void(EventCustom *)> &callback) |
Initializes event with type and callback function. More... | |
![]() | |
bool | init (Type t, const ListenerID &listenerID, const std::function< void(Event *)> &callback) |
Initializes event with type and callback function. More... | |
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. More... | |
![]() | |
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. More... | |
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)> | onContactSeperate |
It will called at two shapes separated, and only call it once. More... | |
![]() | |
CC_CONSTRUCTOR_ACCESS | __pad0__: EventListenerCustom() |
![]() | |
CC_CONSTRUCTOR_ACCESS | __pad0__: EventListener() |
Protected Member Functions | |
virtual bool | hitTest (PhysicsShape *shapeA, PhysicsShape *shapeB) |
It will be call when two body have contact. More... | |
bool | init () |
void | onEvent (EventCustom *event) |
EventListenerPhysicsContact () | |
virtual | ~EventListenerPhysicsContact () |
![]() | |
void | setPaused (bool paused) |
Sets paused state for the listener The paused state is only used for scene graph priority listeners. More... | |
bool | isPaused () const |
Checks whether the listener is paused. More... | |
void | setRegistered (bool registered) |
Marks the listener was registered by EventDispatcher. More... | |
bool | isRegistered () const |
Checks whether the listener was registered by EventDispatcher. More... | |
Type | getType () const |
Gets the type of this listener. More... | |
const ListenerID & | getListenerID () const |
Gets the listener ID of this listener When event is being dispatched, listener ID is used as key for searching listeners according to event type. More... | |
void | setFixedPriority (int fixedPriority) |
Sets the fixed priority for this listener. More... | |
int | getFixedPriority () const |
Gets the fixed priority of this listener. More... | |
void | setAssociatedNode (Node *node) |
Sets the node associated with this listener. More... | |
Node * | getAssociatedNode () const |
Gets the node associated with this listener. More... | |
![]() | |
Ref () | |
Constructor. More... | |
Friends | |
class | PhysicsWorld |
Additional Inherited Members | |
![]() | |
enum | Type { UNKNOWN, TOUCH_ONE_BY_ONE, TOUCH_ALL_AT_ONCE, KEYBOARD, MOUSE, ACCELERATION, FOCUS, GAME_CONTROLLER, CUSTOM } |
Type Event type. More... | |
typedef std::string | ListenerID |
![]() | |
std::function< void(EventCustom *)> | _onCustomEvent |
![]() | |
std::function< void(Event *)> | _onEvent |
Type | _type |
Event callback function. More... | |
ListenerID | _listenerID |
Event listener type. More... | |
bool | _isRegistered |
Event listener ID. More... | |
int | _fixedPriority |
Whether the listener has been added to dispatcher. More... | |
Node * | _node |
bool | _paused |
bool | _isEnabled |
![]() | |
unsigned int | _referenceCount |
count of references More... | |
Contact listener.
It will recive all the contact callbacks.
|
protected |
|
protectedvirtual |
|
overridevirtual |
Check the listener is available.
Reimplemented from EventListenerCustom.
|
overridevirtual |
Clone an object from this listener.
Reimplemented from EventListenerCustom.
Reimplemented in EventListenerPhysicsContactWithGroup, EventListenerPhysicsContactWithShapes, and EventListenerPhysicsContactWithBodies.
|
static |
Create the listener.
|
protectedvirtual |
It will be call when two body have contact.
if return false, it will not invoke callbacks.
Reimplemented in EventListenerPhysicsContactWithGroup, EventListenerPhysicsContactWithShapes, and EventListenerPhysicsContactWithBodies.
|
protected |
|
protected |
|
friend |
std::function<bool(PhysicsContact& contact)> onContactBegin |
It will called at two shapes start to contact, and only call it once.
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<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)> onContactSeperate |
It will called at two shapes separated, and only call it once.
onContactBegin and onContactSeperate will called in pairs.