mirror of
https://github.com/godotengine/godot.git
synced 2024-11-22 20:23:53 +00:00
Merge pull request #68886 from timothyqiu/motion-distance
Revert move vector parameter name to "motion"
This commit is contained in:
commit
3a874804ab
@ -25,12 +25,12 @@
|
||||
</method>
|
||||
<method name="move_and_collide">
|
||||
<return type="KinematicCollision2D" />
|
||||
<param index="0" name="distance" type="Vector2" />
|
||||
<param index="0" name="motion" type="Vector2" />
|
||||
<param index="1" name="test_only" type="bool" default="false" />
|
||||
<param index="2" name="safe_margin" type="float" default="0.08" />
|
||||
<param index="3" name="recovery_as_collision" type="bool" default="false" />
|
||||
<description>
|
||||
Moves the body along the vector [param distance]. In order to be frame rate independent in [method Node._physics_process] or [method Node._process], [param distance] should be computed using [code]delta[/code].
|
||||
Moves the body along the vector [param motion]. In order to be frame rate independent in [method Node._physics_process] or [method Node._process], [param motion] should be computed using [code]delta[/code].
|
||||
Returns a [KinematicCollision2D], which contains information about the collision when stopped, or when touching another body along the motion.
|
||||
If [param test_only] is [code]true[/code], the body does not move but the would-be collision information is given.
|
||||
[param safe_margin] is the extra margin used for collision recovery (see [member CharacterBody2D.safe_margin] for more details).
|
||||
@ -47,13 +47,13 @@
|
||||
<method name="test_move">
|
||||
<return type="bool" />
|
||||
<param index="0" name="from" type="Transform2D" />
|
||||
<param index="1" name="distance" type="Vector2" />
|
||||
<param index="1" name="motion" type="Vector2" />
|
||||
<param index="2" name="collision" type="KinematicCollision2D" default="null" />
|
||||
<param index="3" name="safe_margin" type="float" default="0.08" />
|
||||
<param index="4" name="recovery_as_collision" type="bool" default="false" />
|
||||
<description>
|
||||
Checks for collisions without moving the body. In order to be frame rate independent in [method Node._physics_process] or [method Node._process], [param distance] should be computed using [code]delta[/code].
|
||||
Virtually sets the node's position, scale and rotation to that of the given [Transform2D], then tries to move the body along the vector [param distance]. Returns [code]true[/code] if a collision would stop the body from moving along the whole path.
|
||||
Checks for collisions without moving the body. In order to be frame rate independent in [method Node._physics_process] or [method Node._process], [param motion] should be computed using [code]delta[/code].
|
||||
Virtually sets the node's position, scale and rotation to that of the given [Transform2D], then tries to move the body along the vector [param motion]. Returns [code]true[/code] if a collision would stop the body from moving along the whole path.
|
||||
[param collision] is an optional object of type [KinematicCollision2D], which contains additional information about the collision when stopped, or when touching another body along the motion.
|
||||
[param safe_margin] is the extra margin used for collision recovery (see [member CharacterBody2D.safe_margin] for more details).
|
||||
If [param recovery_as_collision] is [code]true[/code], any depenetration from the recovery phase is also reported as a collision; this is useful for checking whether the body would [i]touch[/i] any other bodies.
|
||||
|
@ -32,13 +32,13 @@
|
||||
</method>
|
||||
<method name="move_and_collide">
|
||||
<return type="KinematicCollision3D" />
|
||||
<param index="0" name="distance" type="Vector3" />
|
||||
<param index="0" name="motion" type="Vector3" />
|
||||
<param index="1" name="test_only" type="bool" default="false" />
|
||||
<param index="2" name="safe_margin" type="float" default="0.001" />
|
||||
<param index="3" name="recovery_as_collision" type="bool" default="false" />
|
||||
<param index="4" name="max_collisions" type="int" default="1" />
|
||||
<description>
|
||||
Moves the body along the vector [param distance]. In order to be frame rate independent in [method Node._physics_process] or [method Node._process], [param distance] should be computed using [code]delta[/code].
|
||||
Moves the body along the vector [param motion]. In order to be frame rate independent in [method Node._physics_process] or [method Node._process], [param motion] should be computed using [code]delta[/code].
|
||||
The body will stop if it collides. Returns a [KinematicCollision3D], which contains information about the collision when stopped, or when touching another body along the motion.
|
||||
If [param test_only] is [code]true[/code], the body does not move but the would-be collision information is given.
|
||||
[param safe_margin] is the extra margin used for collision recovery (see [member CharacterBody3D.safe_margin] for more details).
|
||||
@ -64,14 +64,14 @@
|
||||
<method name="test_move">
|
||||
<return type="bool" />
|
||||
<param index="0" name="from" type="Transform3D" />
|
||||
<param index="1" name="distance" type="Vector3" />
|
||||
<param index="1" name="motion" type="Vector3" />
|
||||
<param index="2" name="collision" type="KinematicCollision3D" default="null" />
|
||||
<param index="3" name="safe_margin" type="float" default="0.001" />
|
||||
<param index="4" name="recovery_as_collision" type="bool" default="false" />
|
||||
<param index="5" name="max_collisions" type="int" default="1" />
|
||||
<description>
|
||||
Checks for collisions without moving the body. In order to be frame rate independent in [method Node._physics_process] or [method Node._process], [param distance] should be computed using [code]delta[/code].
|
||||
Virtually sets the node's position, scale and rotation to that of the given [Transform3D], then tries to move the body along the vector [param distance]. Returns [code]true[/code] if a collision would stop the body from moving along the whole path.
|
||||
Checks for collisions without moving the body. In order to be frame rate independent in [method Node._physics_process] or [method Node._process], [param motion] should be computed using [code]delta[/code].
|
||||
Virtually sets the node's position, scale and rotation to that of the given [Transform3D], then tries to move the body along the vector [param motion]. Returns [code]true[/code] if a collision would stop the body from moving along the whole path.
|
||||
[param collision] is an optional object of type [KinematicCollision3D], which contains additional information about the collision when stopped, or when touching another body along the motion.
|
||||
[param safe_margin] is the extra margin used for collision recovery (see [member CharacterBody3D.safe_margin] for more details).
|
||||
If [param recovery_as_collision] is [code]true[/code], any depenetration from the recovery phase is also reported as a collision; this is useful for checking whether the body would [i]touch[/i] any other bodies.
|
||||
|
@ -34,8 +34,8 @@
|
||||
#include "scene/scene_string_names.h"
|
||||
|
||||
void PhysicsBody2D::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("move_and_collide", "distance", "test_only", "safe_margin", "recovery_as_collision"), &PhysicsBody2D::_move, DEFVAL(false), DEFVAL(0.08), DEFVAL(false));
|
||||
ClassDB::bind_method(D_METHOD("test_move", "from", "distance", "collision", "safe_margin", "recovery_as_collision"), &PhysicsBody2D::test_move, DEFVAL(Variant()), DEFVAL(0.08), DEFVAL(false));
|
||||
ClassDB::bind_method(D_METHOD("move_and_collide", "motion", "test_only", "safe_margin", "recovery_as_collision"), &PhysicsBody2D::_move, DEFVAL(false), DEFVAL(0.08), DEFVAL(false));
|
||||
ClassDB::bind_method(D_METHOD("test_move", "from", "motion", "collision", "safe_margin", "recovery_as_collision"), &PhysicsBody2D::test_move, DEFVAL(Variant()), DEFVAL(0.08), DEFVAL(false));
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_collision_exceptions"), &PhysicsBody2D::get_collision_exceptions);
|
||||
ClassDB::bind_method(D_METHOD("add_collision_exception_with", "body"), &PhysicsBody2D::add_collision_exception_with);
|
||||
@ -54,8 +54,8 @@ PhysicsBody2D::~PhysicsBody2D() {
|
||||
}
|
||||
}
|
||||
|
||||
Ref<KinematicCollision2D> PhysicsBody2D::_move(const Vector2 &p_distance, bool p_test_only, real_t p_margin, bool p_recovery_as_collision) {
|
||||
PhysicsServer2D::MotionParameters parameters(get_global_transform(), p_distance, p_margin);
|
||||
Ref<KinematicCollision2D> PhysicsBody2D::_move(const Vector2 &p_motion, bool p_test_only, real_t p_margin, bool p_recovery_as_collision) {
|
||||
PhysicsServer2D::MotionParameters parameters(get_global_transform(), p_motion, p_margin);
|
||||
parameters.recovery_as_collision = p_recovery_as_collision;
|
||||
|
||||
PhysicsServer2D::MotionResult result;
|
||||
@ -128,7 +128,7 @@ bool PhysicsBody2D::move_and_collide(const PhysicsServer2D::MotionParameters &p_
|
||||
return colliding;
|
||||
}
|
||||
|
||||
bool PhysicsBody2D::test_move(const Transform2D &p_from, const Vector2 &p_distance, const Ref<KinematicCollision2D> &r_collision, real_t p_margin, bool p_recovery_as_collision) {
|
||||
bool PhysicsBody2D::test_move(const Transform2D &p_from, const Vector2 &p_motion, const Ref<KinematicCollision2D> &r_collision, real_t p_margin, bool p_recovery_as_collision) {
|
||||
ERR_FAIL_COND_V(!is_inside_tree(), false);
|
||||
|
||||
PhysicsServer2D::MotionResult *r = nullptr;
|
||||
@ -140,7 +140,7 @@ bool PhysicsBody2D::test_move(const Transform2D &p_from, const Vector2 &p_distan
|
||||
r = &temp_result;
|
||||
}
|
||||
|
||||
PhysicsServer2D::MotionParameters parameters(p_from, p_distance, p_margin);
|
||||
PhysicsServer2D::MotionParameters parameters(p_from, p_motion, p_margin);
|
||||
parameters.recovery_as_collision = p_recovery_as_collision;
|
||||
|
||||
return PhysicsServer2D::get_singleton()->body_test_motion(get_rid(), parameters, r);
|
||||
|
@ -47,11 +47,11 @@ protected:
|
||||
|
||||
Ref<KinematicCollision2D> motion_cache;
|
||||
|
||||
Ref<KinematicCollision2D> _move(const Vector2 &p_distance, bool p_test_only = false, real_t p_margin = 0.08, bool p_recovery_as_collision = false);
|
||||
Ref<KinematicCollision2D> _move(const Vector2 &p_motion, bool p_test_only = false, real_t p_margin = 0.08, bool p_recovery_as_collision = false);
|
||||
|
||||
public:
|
||||
bool move_and_collide(const PhysicsServer2D::MotionParameters &p_parameters, PhysicsServer2D::MotionResult &r_result, bool p_test_only = false, bool p_cancel_sliding = true);
|
||||
bool test_move(const Transform2D &p_from, const Vector2 &p_distance, const Ref<KinematicCollision2D> &r_collision = Ref<KinematicCollision2D>(), real_t p_margin = 0.08, bool p_recovery_as_collision = false);
|
||||
bool test_move(const Transform2D &p_from, const Vector2 &p_motion, const Ref<KinematicCollision2D> &r_collision = Ref<KinematicCollision2D>(), real_t p_margin = 0.08, bool p_recovery_as_collision = false);
|
||||
|
||||
TypedArray<PhysicsBody2D> get_collision_exceptions();
|
||||
void add_collision_exception_with(Node *p_node); //must be physicsbody
|
||||
|
@ -34,8 +34,8 @@
|
||||
#include "scene/scene_string_names.h"
|
||||
|
||||
void PhysicsBody3D::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("move_and_collide", "distance", "test_only", "safe_margin", "recovery_as_collision", "max_collisions"), &PhysicsBody3D::_move, DEFVAL(false), DEFVAL(0.001), DEFVAL(false), DEFVAL(1));
|
||||
ClassDB::bind_method(D_METHOD("test_move", "from", "distance", "collision", "safe_margin", "recovery_as_collision", "max_collisions"), &PhysicsBody3D::test_move, DEFVAL(Variant()), DEFVAL(0.001), DEFVAL(false), DEFVAL(1));
|
||||
ClassDB::bind_method(D_METHOD("move_and_collide", "motion", "test_only", "safe_margin", "recovery_as_collision", "max_collisions"), &PhysicsBody3D::_move, DEFVAL(false), DEFVAL(0.001), DEFVAL(false), DEFVAL(1));
|
||||
ClassDB::bind_method(D_METHOD("test_move", "from", "motion", "collision", "safe_margin", "recovery_as_collision", "max_collisions"), &PhysicsBody3D::test_move, DEFVAL(Variant()), DEFVAL(0.001), DEFVAL(false), DEFVAL(1));
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_axis_lock", "axis", "lock"), &PhysicsBody3D::set_axis_lock);
|
||||
ClassDB::bind_method(D_METHOD("get_axis_lock", "axis"), &PhysicsBody3D::get_axis_lock);
|
||||
@ -91,8 +91,8 @@ void PhysicsBody3D::remove_collision_exception_with(Node *p_node) {
|
||||
PhysicsServer3D::get_singleton()->body_remove_collision_exception(get_rid(), collision_object->get_rid());
|
||||
}
|
||||
|
||||
Ref<KinematicCollision3D> PhysicsBody3D::_move(const Vector3 &p_distance, bool p_test_only, real_t p_margin, bool p_recovery_as_collision, int p_max_collisions) {
|
||||
PhysicsServer3D::MotionParameters parameters(get_global_transform(), p_distance, p_margin);
|
||||
Ref<KinematicCollision3D> PhysicsBody3D::_move(const Vector3 &p_motion, bool p_test_only, real_t p_margin, bool p_recovery_as_collision, int p_max_collisions) {
|
||||
PhysicsServer3D::MotionParameters parameters(get_global_transform(), p_motion, p_margin);
|
||||
parameters.max_collisions = p_max_collisions;
|
||||
parameters.recovery_as_collision = p_recovery_as_collision;
|
||||
|
||||
@ -169,7 +169,7 @@ bool PhysicsBody3D::move_and_collide(const PhysicsServer3D::MotionParameters &p_
|
||||
return colliding;
|
||||
}
|
||||
|
||||
bool PhysicsBody3D::test_move(const Transform3D &p_from, const Vector3 &p_distance, const Ref<KinematicCollision3D> &r_collision, real_t p_margin, bool p_recovery_as_collision, int p_max_collisions) {
|
||||
bool PhysicsBody3D::test_move(const Transform3D &p_from, const Vector3 &p_motion, const Ref<KinematicCollision3D> &r_collision, real_t p_margin, bool p_recovery_as_collision, int p_max_collisions) {
|
||||
ERR_FAIL_COND_V(!is_inside_tree(), false);
|
||||
|
||||
PhysicsServer3D::MotionResult *r = nullptr;
|
||||
@ -181,7 +181,7 @@ bool PhysicsBody3D::test_move(const Transform3D &p_from, const Vector3 &p_distan
|
||||
r = &temp_result;
|
||||
}
|
||||
|
||||
PhysicsServer3D::MotionParameters parameters(p_from, p_distance, p_margin);
|
||||
PhysicsServer3D::MotionParameters parameters(p_from, p_motion, p_margin);
|
||||
parameters.recovery_as_collision = p_recovery_as_collision;
|
||||
|
||||
return PhysicsServer3D::get_singleton()->body_test_motion(get_rid(), parameters, r);
|
||||
|
@ -50,11 +50,11 @@ protected:
|
||||
|
||||
uint16_t locked_axis = 0;
|
||||
|
||||
Ref<KinematicCollision3D> _move(const Vector3 &p_distance, bool p_test_only = false, real_t p_margin = 0.001, bool p_recovery_as_collision = false, int p_max_collisions = 1);
|
||||
Ref<KinematicCollision3D> _move(const Vector3 &p_motion, bool p_test_only = false, real_t p_margin = 0.001, bool p_recovery_as_collision = false, int p_max_collisions = 1);
|
||||
|
||||
public:
|
||||
bool move_and_collide(const PhysicsServer3D::MotionParameters &p_parameters, PhysicsServer3D::MotionResult &r_result, bool p_test_only = false, bool p_cancel_sliding = true);
|
||||
bool test_move(const Transform3D &p_from, const Vector3 &p_distance, const Ref<KinematicCollision3D> &r_collision = Ref<KinematicCollision3D>(), real_t p_margin = 0.001, bool p_recovery_as_collision = false, int p_max_collisions = 1);
|
||||
bool test_move(const Transform3D &p_from, const Vector3 &p_motion, const Ref<KinematicCollision3D> &r_collision = Ref<KinematicCollision3D>(), real_t p_margin = 0.001, bool p_recovery_as_collision = false, int p_max_collisions = 1);
|
||||
|
||||
void set_axis_lock(PhysicsServer3D::BodyAxis p_axis, bool p_lock);
|
||||
bool get_axis_lock(PhysicsServer3D::BodyAxis p_axis) const;
|
||||
|
Loading…
Reference in New Issue
Block a user