Add latest changes added in the 3D version
This commit is contained in:
parent
50bb0896fa
commit
bd411ae187
3 changed files with 153 additions and 40 deletions
|
|
@ -28,6 +28,12 @@
|
|||
Returns the surface normal of the floor at the last collision point. Only valid after calling [method move_and_slide] and when [method is_on_floor] returns [code]true[/code].
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_last_motion" qualifiers="const">
|
||||
<return type="Vector2" />
|
||||
<description>
|
||||
Returns the last motion applied to the [CharacterBody2D] during the last call to [method move_and_slide]. The movement can be split into multiple motions when sliding occurs, and this method return the last one, which is useful to retrieve the current direction of the movement.
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_last_slide_collision">
|
||||
<return type="KinematicCollision2D" />
|
||||
<description>
|
||||
|
|
@ -40,6 +46,18 @@
|
|||
Returns the linear velocity of the platform at the last collision point. Only valid after calling [method move_and_slide].
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_position_delta" qualifiers="const">
|
||||
<return type="Vector2" />
|
||||
<description>
|
||||
Returns the travel (position delta) that occurred during the last call to [method move_and_slide].
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_real_velocity" qualifiers="const">
|
||||
<return type="Vector2" />
|
||||
<description>
|
||||
Returns the current real velocity since the last call to [method move_and_slide]. For example, when you climb a slope, you will move diagonally even though the velocity is horizontal. This method returns the diagonal movement, as opposed to [member motion_velocity] which returns the requested velocity.
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_slide_collision">
|
||||
<return type="KinematicCollision2D" />
|
||||
<argument index="0" name="slide_idx" type="int" />
|
||||
|
|
@ -68,6 +86,12 @@
|
|||
Returns the number of times the body collided and changed direction during the last call to [method move_and_slide].
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_wall_normal" qualifiers="const">
|
||||
<return type="Vector2" />
|
||||
<description>
|
||||
Returns the surface normal of the wall at the last collision point. Only valid after calling [method move_and_slide] and when [method is_on_wall] returns [code]true[/code].
|
||||
</description>
|
||||
</method>
|
||||
<method name="is_on_ceiling" qualifiers="const">
|
||||
<return type="bool" />
|
||||
<description>
|
||||
|
|
@ -107,9 +131,9 @@
|
|||
<method name="move_and_slide">
|
||||
<return type="bool" />
|
||||
<description>
|
||||
Moves the body based on [member linear_velocity]. If the body collides with another, it will slide along the other body (by default only on floor) rather than stop immediately. If the other body is a [CharacterBody2D] or [RigidDynamicBody2D], it will also be affected by the motion of the other body. You can use this to make moving and rotating platforms, or to make nodes push other nodes.
|
||||
Moves the body based on [member motion_velocity]. If the body collides with another, it will slide along the other body (by default only on floor) rather than stop immediately. If the other body is a [CharacterBody2D] or [RigidDynamicBody2D], it will also be affected by the motion of the other body. You can use this to make moving and rotating platforms, or to make nodes push other nodes.
|
||||
This method should be used in [method Node._physics_process] (or in a method called by [method Node._physics_process]), as it uses the physics step's [code]delta[/code] value automatically in calculations. Otherwise, the simulation will run at an incorrect speed.
|
||||
Modifies [member linear_velocity] if a slide collision occurred. To get the latest collision call [method get_last_slide_collision], for detailed information about collisions that occurred, use [method get_slide_collision].
|
||||
Modifies [member motion_velocity] if a slide collision occurred. To get the latest collision call [method get_last_slide_collision], for detailed information about collisions that occurred, use [method get_slide_collision].
|
||||
When the body touches a moving platform, the platform's velocity is automatically added to the body motion. If a collision occurs due to the platform's motion, it will always be first in the slide collisions.
|
||||
The general behaviour and available properties change according to the [member motion_mode].
|
||||
Returns [code]true[/code] if the body collided, otherwise, returns [code]false[/code].
|
||||
|
|
@ -138,20 +162,24 @@
|
|||
As long as the snapping vector is in contact with the ground and the body moves against `up_direction`, the body will remain attached to the surface. Snapping is not applied if the body moves along `up_direction`, so it will be able to detach from the ground when jumping.
|
||||
</member>
|
||||
<member name="floor_stop_on_slope" type="bool" setter="set_floor_stop_on_slope_enabled" getter="is_floor_stop_on_slope_enabled" default="true">
|
||||
If [code]true[/code], the body will not slide on floor's slopes when you include gravity in [code]linear_velocity[/code] when calling [method move_and_slide] and the body is standing still.
|
||||
If [code]true[/code], the body will not slide on slopes when calling [method move_and_slide] when the body is standing still.
|
||||
If [code]false[/code], the body will slide on floor's slopes when [member motion_velocity] applies a downward force.
|
||||
</member>
|
||||
<member name="free_mode_min_slide_angle" type="float" setter="set_free_mode_min_slide_angle" getter="get_free_mode_min_slide_angle" default="0.261799">
|
||||
Minimum angle (in radians) where the body is allowed to slide when it encounters a slope. The default value equals 15 degrees.
|
||||
</member>
|
||||
<member name="linear_velocity" type="Vector2" setter="set_linear_velocity" getter="get_linear_velocity" default="Vector2(0, 0)">
|
||||
Current velocity vector in pixels per second, used and modified during calls to [method move_and_slide].
|
||||
</member>
|
||||
<member name="max_slides" type="int" setter="set_max_slides" getter="get_max_slides" default="4">
|
||||
Maximum number of times the body can change direction before it stops when calling [method move_and_slide].
|
||||
</member>
|
||||
<member name="motion_mode" type="int" setter="set_motion_mode" getter="get_motion_mode" enum="CharacterBody2D.MotionMode" default="0">
|
||||
Sets the motion mode which defines the behaviour of [method move_and_slide]. See [enum MotionMode] constants for available modes.
|
||||
</member>
|
||||
<member name="motion_velocity" type="Vector2" setter="set_motion_velocity" getter="get_motion_velocity" default="Vector2(0, 0)">
|
||||
Current velocity vector in pixels per second, used and modified during calls to [method move_and_slide].
|
||||
</member>
|
||||
<member name="moving_platform_apply_velocity_on_leave" type="int" setter="set_moving_platform_apply_velocity_on_leave" getter="get_moving_platform_apply_velocity_on_leave" enum="CharacterBody2D.MovingPlatformApplyVelocityOnLeave" default="0">
|
||||
Sets the behaviour to apply when you leave a moving platform. By default, to be physically accurate, when you leave the last platform velocity is applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for available behaviour.
|
||||
</member>
|
||||
<member name="moving_platform_floor_layers" type="int" setter="set_moving_platform_floor_layers" getter="get_moving_platform_floor_layers" default="4294967295">
|
||||
Collision layers that will be included for detecting floor bodies that will act as moving platforms to be followed by the [CharacterBody2D]. By default, all floor bodies are detected and propagate their velocity.
|
||||
</member>
|
||||
|
|
@ -172,5 +200,14 @@
|
|||
<constant name="MOTION_MODE_FREE" value="1" enum="MotionMode">
|
||||
Apply when there is no notion of floor or ceiling. All collisions will be reported as [code]on_wall[/code]. In this mode, when you slide, the speed will always be constant. This mode is suitable for top-down games.
|
||||
</constant>
|
||||
<constant name="PLATFORM_VEL_ON_LEAVE_ALWAYS" value="0" enum="MovingPlatformApplyVelocityOnLeave">
|
||||
Add the last platform velocity to the [member motion_velocity] when you leave a moving platform.
|
||||
</constant>
|
||||
<constant name="PLATFORM_VEL_ON_LEAVE_UPWARD_ONLY" value="1" enum="MovingPlatformApplyVelocityOnLeave">
|
||||
Add the last platform velocity to the [member motion_velocity] when you leave a moving platform, but any downward motion is ignored. It's useful to keep full jump height even when the platform is moving down.
|
||||
</constant>
|
||||
<constant name="PLATFORM_VEL_ON_LEAVE_NEVER" value="2" enum="MovingPlatformApplyVelocityOnLeave">
|
||||
Do nothing when leaving a platform.
|
||||
</constant>
|
||||
</constants>
|
||||
</class>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue