CollisionHandlerPhysical

from panda3d.core import CollisionHandlerPhysical
class CollisionHandlerPhysical

Bases:

Bases: CollisionHandlerEvent

The abstract base class for a number of CollisionHandlers that have some physical effect on their moving bodies: they need to update the nodes’ positions based on the effects of the collision.

Inheritance diagram

Inheritance diagram of CollisionHandlerPhysical

__reduce__() object
__setstate__(data: bytes, nodepaths: object)
add_collider(collider: NodePath, target: NodePath)

Adds a new collider to the list with a NodePath that will be updated with the collider’s new position, or updates the existing collider with a new NodePath object.

add_collider(collider: NodePath, target: NodePath, drive_interface: DriveInterface)

Adds a new collider to the list with a NodePath that will be updated with the collider’s new position, or updates the existing collider with a new NodePath object.

The indicated DriveInterface will also be updated with the target’s new transform each frame. This method should be used when the target is directly controlled by a DriveInterface.

property center NodePath
Getter

Returns the NodePath specified with set_center(), or the empty NodePath if nothing has been specified.

Setter

Specifies an arbitrary NodePath that the handler is always considered to be facing. It does not detect collisions with surfaces that appear to be facing away from this NodePath. This works best when the collision surfaces in question are polygons.

clear_center()

Clears the center NodePath specified with set_center().

clear_colliders()

Completely empties the list of colliders this handler knows about.

get_center() NodePath

Returns the NodePath specified with set_center(), or the empty NodePath if nothing has been specified.

static get_class_type() TypeHandle
has_center() bool

Returns true if a NodePath has been specified with set_center(), false otherwise.

has_collider(collider: NodePath) bool

Returns true if the handler knows about the indicated collider, false otherwise.

has_contact() bool

Did the handler make any contacts with anything on the last collision pass? Depending on how your world is setup, this can be used to tell if the handler is out of the world (i.e. out of bounds). That is the original use of this call.

remove_collider(collider: NodePath) bool

Removes the collider from the list of colliders that this handler knows about.

set_center(center: NodePath)

Specifies an arbitrary NodePath that the handler is always considered to be facing. It does not detect collisions with surfaces that appear to be facing away from this NodePath. This works best when the collision surfaces in question are polygons.