[DOC] Physics[2D]DirectBodyState updates

(cherry picked from commit bb2e6e3ed2)
This commit is contained in:
Chris Bradfield 2019-03-25 21:20:52 -07:00 committed by Rémi Verschelde
parent e9796044ed
commit 4740489a97
2 changed files with 46 additions and 25 deletions

View File

@ -4,9 +4,10 @@
Direct access object to a physics body in the [Physics2DServer]. Direct access object to a physics body in the [Physics2DServer].
</brief_description> </brief_description>
<description> <description>
Direct access object to a physics body in the [Physics2DServer]. This object is passed via the direct state callback of rigid/character bodies, and is intended for changing the direct state of that body. Provides direct access to a physics body in the [Physics2DServer], allowing safe changes to physics properties. This object is passed via the direct state callback of rigid/character bodies, and is intended for changing the direct state of that body. See [method RigidBody2D._integrate_forces].
</description> </description>
<tutorials> <tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/physics/ray-casting.html</link>
</tutorials> </tutorials>
<demos> <demos>
</demos> </demos>
@ -17,6 +18,7 @@
<argument index="0" name="force" type="Vector2"> <argument index="0" name="force" type="Vector2">
</argument> </argument>
<description> <description>
Adds a constant directional force without affecting rotation.
</description> </description>
</method> </method>
<method name="add_force"> <method name="add_force">
@ -27,6 +29,7 @@
<argument index="1" name="force" type="Vector2"> <argument index="1" name="force" type="Vector2">
</argument> </argument>
<description> <description>
Adds a positioned force to the body. Both the force and the offset from the body origin are in global coordinates.
</description> </description>
</method> </method>
<method name="add_torque"> <method name="add_torque">
@ -35,6 +38,7 @@
<argument index="0" name="torque" type="float"> <argument index="0" name="torque" type="float">
</argument> </argument>
<description> <description>
Adds a constant rotational force.
</description> </description>
</method> </method>
<method name="apply_central_impulse"> <method name="apply_central_impulse">
@ -43,6 +47,7 @@
<argument index="0" name="impulse" type="Vector2"> <argument index="0" name="impulse" type="Vector2">
</argument> </argument>
<description> <description>
Applies a directional impulse without affecting rotation.
</description> </description>
</method> </method>
<method name="apply_impulse"> <method name="apply_impulse">
@ -53,6 +58,7 @@
<argument index="1" name="impulse" type="Vector2"> <argument index="1" name="impulse" type="Vector2">
</argument> </argument>
<description> <description>
Applies a positioned impulse to the body. An impulse is time independent! Applying an impulse every frame would result in a framerate dependent force. For this reason it should only be used when simulating one-time impacts (use the "_force" functions otherwise). The offset uses the rotation of the global coordinate system, but is centered at the object's origin.
</description> </description>
</method> </method>
<method name="apply_torque_impulse"> <method name="apply_torque_impulse">
@ -61,6 +67,7 @@
<argument index="0" name="impulse" type="float"> <argument index="0" name="impulse" type="float">
</argument> </argument>
<description> <description>
Applies a rotational impulse to the body.
</description> </description>
</method> </method>
<method name="get_contact_collider" qualifiers="const"> <method name="get_contact_collider" qualifiers="const">
@ -69,7 +76,7 @@
<argument index="0" name="contact_idx" type="int"> <argument index="0" name="contact_idx" type="int">
</argument> </argument>
<description> <description>
Return the [RID] of the collider. Returns the collider's [RID].
</description> </description>
</method> </method>
<method name="get_contact_collider_id" qualifiers="const"> <method name="get_contact_collider_id" qualifiers="const">
@ -78,7 +85,7 @@
<argument index="0" name="contact_idx" type="int"> <argument index="0" name="contact_idx" type="int">
</argument> </argument>
<description> <description>
Return the object id of the collider. Returns the collider's object id.
</description> </description>
</method> </method>
<method name="get_contact_collider_object" qualifiers="const"> <method name="get_contact_collider_object" qualifiers="const">
@ -87,7 +94,7 @@
<argument index="0" name="contact_idx" type="int"> <argument index="0" name="contact_idx" type="int">
</argument> </argument>
<description> <description>
Return the collider object, this depends on how it was created (will return a scene node if such was used to create it). Returns the collider object. This depends on how it was created (will return a scene node if such was used to create it).
</description> </description>
</method> </method>
<method name="get_contact_collider_position" qualifiers="const"> <method name="get_contact_collider_position" qualifiers="const">
@ -96,7 +103,7 @@
<argument index="0" name="contact_idx" type="int"> <argument index="0" name="contact_idx" type="int">
</argument> </argument>
<description> <description>
Return the contact position in the collider. Returns the contact position in the collider.
</description> </description>
</method> </method>
<method name="get_contact_collider_shape" qualifiers="const"> <method name="get_contact_collider_shape" qualifiers="const">
@ -105,7 +112,7 @@
<argument index="0" name="contact_idx" type="int"> <argument index="0" name="contact_idx" type="int">
</argument> </argument>
<description> <description>
Return the collider shape index. Returns the collider's shape index.
</description> </description>
</method> </method>
<method name="get_contact_collider_shape_metadata" qualifiers="const"> <method name="get_contact_collider_shape_metadata" qualifiers="const">
@ -114,7 +121,7 @@
<argument index="0" name="contact_idx" type="int"> <argument index="0" name="contact_idx" type="int">
</argument> </argument>
<description> <description>
Return the metadata of the collided shape. This metadata is different from [method Object.get_meta], and is set with [method Physics2DServer.shape_set_data]. Returns the collided shape's metadata. This metadata is different from [method Object.get_meta], and is set with [method Physics2DServer.shape_set_data].
</description> </description>
</method> </method>
<method name="get_contact_collider_velocity_at_position" qualifiers="const"> <method name="get_contact_collider_velocity_at_position" qualifiers="const">
@ -123,14 +130,14 @@
<argument index="0" name="contact_idx" type="int"> <argument index="0" name="contact_idx" type="int">
</argument> </argument>
<description> <description>
Return the linear velocity vector at contact point of the collider. Returns the linear velocity vector at the collider's contact point.
</description> </description>
</method> </method>
<method name="get_contact_count" qualifiers="const"> <method name="get_contact_count" qualifiers="const">
<return type="int"> <return type="int">
</return> </return>
<description> <description>
Return the amount of contacts this body has with other bodies. Note that by default this returns 0 unless bodies are configured to log contacts. Returns the number of contacts this body has with other bodies. Note that by default this returns 0 unless bodies are configured to log contacts. See [member RigidBody2D.contact_monitor].
</description> </description>
</method> </method>
<method name="get_contact_local_normal" qualifiers="const"> <method name="get_contact_local_normal" qualifiers="const">
@ -139,7 +146,7 @@
<argument index="0" name="contact_idx" type="int"> <argument index="0" name="contact_idx" type="int">
</argument> </argument>
<description> <description>
Return the local normal (of this body) of the contact point. Returns the local normal at the contact point.
</description> </description>
</method> </method>
<method name="get_contact_local_position" qualifiers="const"> <method name="get_contact_local_position" qualifiers="const">
@ -148,7 +155,7 @@
<argument index="0" name="contact_idx" type="int"> <argument index="0" name="contact_idx" type="int">
</argument> </argument>
<description> <description>
Return the local position (of this body) of the contact point. Returns the local position of the contact point.
</description> </description>
</method> </method>
<method name="get_contact_local_shape" qualifiers="const"> <method name="get_contact_local_shape" qualifiers="const">
@ -157,27 +164,27 @@
<argument index="0" name="contact_idx" type="int"> <argument index="0" name="contact_idx" type="int">
</argument> </argument>
<description> <description>
Return the local shape index of the collision. Returns the local shape index of the collision.
</description> </description>
</method> </method>
<method name="get_space_state"> <method name="get_space_state">
<return type="Physics2DDirectSpaceState"> <return type="Physics2DDirectSpaceState">
</return> </return>
<description> <description>
Return the current state of space, useful for queries. Returns the current state of the space, useful for queries.
</description> </description>
</method> </method>
<method name="integrate_forces"> <method name="integrate_forces">
<return type="void"> <return type="void">
</return> </return>
<description> <description>
Call the built-in force integration code. Calls the built-in force integration code.
</description> </description>
</method> </method>
</methods> </methods>
<members> <members>
<member name="angular_velocity" type="float" setter="set_angular_velocity" getter="get_angular_velocity"> <member name="angular_velocity" type="float" setter="set_angular_velocity" getter="get_angular_velocity">
The angular velocity of the body. The body's rotational velocity.
</member> </member>
<member name="inverse_inertia" type="float" setter="" getter="get_inverse_inertia"> <member name="inverse_inertia" type="float" setter="" getter="get_inverse_inertia">
The inverse of the inertia of the body. The inverse of the inertia of the body.
@ -186,10 +193,10 @@
The inverse of the mass of the body. The inverse of the mass of the body.
</member> </member>
<member name="linear_velocity" type="Vector2" setter="set_linear_velocity" getter="get_linear_velocity"> <member name="linear_velocity" type="Vector2" setter="set_linear_velocity" getter="get_linear_velocity">
The linear velocity of the body. The body's linear velocity.
</member> </member>
<member name="sleeping" type="bool" setter="set_sleep_state" getter="is_sleeping"> <member name="sleeping" type="bool" setter="set_sleep_state" getter="is_sleeping">
[code]true[/code] if this body is currently sleeping (not active). If [code]true[/code], this body is currently sleeping (not active).
</member> </member>
<member name="step" type="float" setter="" getter="get_step"> <member name="step" type="float" setter="" getter="get_step">
The timestep (delta) used for the simulation. The timestep (delta) used for the simulation.
@ -204,7 +211,7 @@
The rate at which the body stops moving, if there are not any other forces moving it. The rate at which the body stops moving, if there are not any other forces moving it.
</member> </member>
<member name="transform" type="Transform2D" setter="set_transform" getter="get_transform"> <member name="transform" type="Transform2D" setter="set_transform" getter="get_transform">
The transformation matrix of the body. The body's transformation matrix.
</member> </member>
</members> </members>
<constants> <constants>

View File

@ -1,14 +1,16 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<class name="PhysicsDirectBodyState" inherits="Object" category="Core" version="3.1"> <class name="PhysicsDirectBodyState" inherits="Object" category="Core" version="3.1">
<brief_description> <brief_description>
Direct access object to a physics body in the [PhysicsServer].
</brief_description> </brief_description>
<description> <description>
Provides direct access to a physics body in the [PhysicsServer], allowing safe changes to physics properties. This object is passed via the direct state callback of rigid/character bodies, and is intended for changing the direct state of that body. See [method RigidBody._integrate_forces].
</description> </description>
<tutorials> <tutorials>
</tutorials> </tutorials>
<demos> <demos>
</demos> </demos>
<methods> <methods>(
<method name="add_central_force"> <method name="add_central_force">
<return type="void"> <return type="void">
</return> </return>
@ -27,7 +29,7 @@
<argument index="1" name="position" type="Vector3"> <argument index="1" name="position" type="Vector3">
</argument> </argument>
<description> <description>
Adds a constant force (i.e. acceleration). Adds a positioned force to the body. Both the force and the offset from the body origin are in global coordinates.
</description> </description>
</method> </method>
<method name="add_torque"> <method name="add_torque">
@ -36,7 +38,7 @@
<argument index="0" name="torque" type="Vector3"> <argument index="0" name="torque" type="Vector3">
</argument> </argument>
<description> <description>
Adds a constant rotational force (i.e. a motor) without affecting position. Adds a constant rotational force without affecting position.
</description> </description>
</method> </method>
<method name="apply_central_impulse"> <method name="apply_central_impulse">
@ -75,6 +77,7 @@
<argument index="0" name="contact_idx" type="int"> <argument index="0" name="contact_idx" type="int">
</argument> </argument>
<description> <description>
Returns the collider's [RID].
</description> </description>
</method> </method>
<method name="get_contact_collider_id" qualifiers="const"> <method name="get_contact_collider_id" qualifiers="const">
@ -83,6 +86,7 @@
<argument index="0" name="contact_idx" type="int"> <argument index="0" name="contact_idx" type="int">
</argument> </argument>
<description> <description>
Returns the collider's object id.
</description> </description>
</method> </method>
<method name="get_contact_collider_object" qualifiers="const"> <method name="get_contact_collider_object" qualifiers="const">
@ -91,6 +95,7 @@
<argument index="0" name="contact_idx" type="int"> <argument index="0" name="contact_idx" type="int">
</argument> </argument>
<description> <description>
Returns the collider object.
</description> </description>
</method> </method>
<method name="get_contact_collider_position" qualifiers="const"> <method name="get_contact_collider_position" qualifiers="const">
@ -99,6 +104,7 @@
<argument index="0" name="contact_idx" type="int"> <argument index="0" name="contact_idx" type="int">
</argument> </argument>
<description> <description>
Returns the contact position in the collider.
</description> </description>
</method> </method>
<method name="get_contact_collider_shape" qualifiers="const"> <method name="get_contact_collider_shape" qualifiers="const">
@ -107,6 +113,7 @@
<argument index="0" name="contact_idx" type="int"> <argument index="0" name="contact_idx" type="int">
</argument> </argument>
<description> <description>
Returns the collider's shape index.
</description> </description>
</method> </method>
<method name="get_contact_collider_velocity_at_position" qualifiers="const"> <method name="get_contact_collider_velocity_at_position" qualifiers="const">
@ -115,12 +122,14 @@
<argument index="0" name="contact_idx" type="int"> <argument index="0" name="contact_idx" type="int">
</argument> </argument>
<description> <description>
Returns the linear velocity vector at the collider's contact point.
</description> </description>
</method> </method>
<method name="get_contact_count" qualifiers="const"> <method name="get_contact_count" qualifiers="const">
<return type="int"> <return type="int">
</return> </return>
<description> <description>
Returns the number of contacts this body has with other bodies. Note that by default this returns 0 unless bodies are configured to log contacts. See [member RigidBody.contact_monitor].
</description> </description>
</method> </method>
<method name="get_contact_impulse" qualifiers="const"> <method name="get_contact_impulse" qualifiers="const">
@ -138,6 +147,7 @@
<argument index="0" name="contact_idx" type="int"> <argument index="0" name="contact_idx" type="int">
</argument> </argument>
<description> <description>
Returns the local normal at the contact point.
</description> </description>
</method> </method>
<method name="get_contact_local_position" qualifiers="const"> <method name="get_contact_local_position" qualifiers="const">
@ -146,6 +156,7 @@
<argument index="0" name="contact_idx" type="int"> <argument index="0" name="contact_idx" type="int">
</argument> </argument>
<description> <description>
Returns the local position of the contact point.
</description> </description>
</method> </method>
<method name="get_contact_local_shape" qualifiers="const"> <method name="get_contact_local_shape" qualifiers="const">
@ -154,24 +165,27 @@
<argument index="0" name="contact_idx" type="int"> <argument index="0" name="contact_idx" type="int">
</argument> </argument>
<description> <description>
Returns the local shape index of the collision.
</description> </description>
</method> </method>
<method name="get_space_state"> <method name="get_space_state">
<return type="PhysicsDirectSpaceState"> <return type="PhysicsDirectSpaceState">
</return> </return>
<description> <description>
Returns the current state of the space, useful for queries.
</description> </description>
</method> </method>
<method name="integrate_forces"> <method name="integrate_forces">
<return type="void"> <return type="void">
</return> </return>
<description> <description>
Calls the built-in force integration code.
</description> </description>
</method> </method>
</methods> </methods>
<members> <members>
<member name="angular_velocity" type="Vector3" setter="set_angular_velocity" getter="get_angular_velocity"> <member name="angular_velocity" type="Vector3" setter="set_angular_velocity" getter="get_angular_velocity">
The angular velocity of the body. The body's rotational velocity.
</member> </member>
<member name="center_of_mass" type="Vector3" setter="" getter="get_center_of_mass"> <member name="center_of_mass" type="Vector3" setter="" getter="get_center_of_mass">
</member> </member>
@ -182,12 +196,12 @@
The inverse of the mass of the body. The inverse of the mass of the body.
</member> </member>
<member name="linear_velocity" type="Vector3" setter="set_linear_velocity" getter="get_linear_velocity"> <member name="linear_velocity" type="Vector3" setter="set_linear_velocity" getter="get_linear_velocity">
The linear velocity of the body. The body's linear velocity.
</member> </member>
<member name="principal_inertia_axes" type="Basis" setter="" getter="get_principal_inertia_axes"> <member name="principal_inertia_axes" type="Basis" setter="" getter="get_principal_inertia_axes">
</member> </member>
<member name="sleeping" type="bool" setter="set_sleep_state" getter="is_sleeping"> <member name="sleeping" type="bool" setter="set_sleep_state" getter="is_sleeping">
[code]true[/code] if this body is currently sleeping (not active). If [code]true[/code], this body is currently sleeping (not active).
</member> </member>
<member name="step" type="float" setter="" getter="get_step"> <member name="step" type="float" setter="" getter="get_step">
The timestep (delta) used for the simulation. The timestep (delta) used for the simulation.
@ -202,7 +216,7 @@
The rate at which the body stops moving, if there are not any other forces moving it. The rate at which the body stops moving, if there are not any other forces moving it.
</member> </member>
<member name="transform" type="Transform" setter="set_transform" getter="get_transform"> <member name="transform" type="Transform" setter="set_transform" getter="get_transform">
The transformation matrix of the body. The body's transformation matrix.
</member> </member>
</members> </members>
<constants> <constants>