CollisionHandlerGravity
from panda3d.core import CollisionHandlerGravity
- class CollisionHandlerGravity
Bases:
Bases:
CollisionHandlerPhysical
A specialized kind of
CollisionHandler
that sets the Z height of the collider to a fixed linear offset from the highest detected collision point each frame. It’s intended to implement walking around on a floor of varying height by casting a ray down from the avatar’s head.Inheritance diagram
- __init__()
- add_velocity(velocity: float)
Adds the sepcified amount to the current velocity. This is mostly here allow this common operation to be faster for scripting, but it’s also more concise even in cpp.
- property airborne_height float
Return the height of the object from the ground.
The object might not necessarily be at rest. Use
is_on_ground()
if you want to know whether the object is on the ground and at rest.
- get_airborne_height() float
Return the height of the object from the ground.
The object might not necessarily be at rest. Use
is_on_ground()
if you want to know whether the object is on the ground and at rest.
- static get_class_type() TypeHandle
- get_impact_velocity() float
How hard did the object hit the ground. This value is set on impact with the ground. You may want to watch (poll) on
is_on_ground()
and when that is true, call get_impact_velocity(). Normally I avoid polling, but we are callingis_on_ground()
frequently anyway.
- get_max_velocity() float
Retrieves the maximum speed at which the object will be allowed to descend towards a floor below it, in units per second. See
set_max_velocity()
.
- get_offset() float
Returns the linear offset to add to (or subtract from) the highest detected collision point to determine the actual height at which to set the collider.
- get_velocity() float
Gets the current vertical velocity.
Generally, negative values mean the object is in free fall; while postive values mean the object has vertical thrust.
A zero value does not necessarily mean the object on the ground, it may also be weightless and/or at the apex of its jump.
See Also:
is_on_ground()
andget_gravity()
- property impact_velocity float
How hard did the object hit the ground. This value is set on impact with the ground. You may want to watch (poll) on
is_on_ground()
and when that is true, callget_impact_velocity()
. Normally I avoid polling, but we are callingis_on_ground()
frequently anyway.
- property max_velocity float
- Getter
Retrieves the maximum speed at which the object will be allowed to descend towards a floor below it, in units per second. See
set_max_velocity()
.- Setter
Sets the maximum speed at which the object will be allowed to descend towards a floor below it, in units per second. Set this to zero to allow it to instantly teleport any distance.
- property offset float
Returns/Sets the linear offset to add to (or subtract from) the highest detected collision point to determine the actual height at which to set the collider.
- property reach float
Returns/Sets the reach to add to (or subtract from) the highest collision point
- set_legacy_mode(legacy_mode: bool)
Enables old behavior required by Toontown (Sellbot Factory lava room is good test case, lava and conveyor belt specifically). Behavior is to throw enter/exit events only for floor that the toon is in contact with
- set_max_velocity(max_vel: float)
Sets the maximum speed at which the object will be allowed to descend towards a floor below it, in units per second. Set this to zero to allow it to instantly teleport any distance.
- set_offset(offset: float)
Sets the linear offset to add to (or subtract from) the highest detected collision point to determine the actual height at which to set the collider.
- property velocity float
- Getter
Gets the current vertical velocity.
Generally, negative values mean the object is in free fall; while postive values mean the object has vertical thrust.
A zero value does not necessarily mean the object on the ground, it may also be weightless and/or at the apex of its jump.
See Also:
is_on_ground()
andget_gravity()
- Setter
Sets the current vertical velocity.