godot/scene/2d
PouleyKetchoupp cf1ddfdb90 Make move_and_slide collision detection more accurate
More accurate unsafe motion calculation
* Safe and unsafe motion are calculated by dichotomy with a limited
number of steps. It's good for performance, but on long motions that
either collide near the beginning or near the end, the result can be
very imprecise.
* Now a factor 0.25 or 0.75 is used to converge faster when this case
happens, which allows longer motions to get more accurate collision
detection.
* Makes snap collision more precise, and helps with cases where diagonal collision on the border of a platform can lead to the character being stuck.

Additional improvements to move_and_slide:
* Handle slide canceling in move_and_collide with 0 velocity instead of
not applying it.
* Better handling of snap with custom logic to cancel sliding.
* Remove small jittering when using stop on slope, by canceling the
motion completely when the resulting motion is less than margin instead
of always projecting to the up direction (in both body motion and snap).

Co-authored-by: fabriceci <fabricecipolla@gmail.com>
2021-07-01 15:15:42 -07:00
..
animated_sprite_2d.cpp Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
animated_sprite_2d.h Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
area_2d.cpp Fix editor suffixes and degrees conversion 2021-06-30 12:38:25 -03:00
area_2d.h Merge pull request #42742 from madmiraal/fix-12215 2021-05-18 20:00:48 +02:00
audio_stream_player_2d.cpp Fix editor suffixes and degrees conversion 2021-06-30 12:38:25 -03:00
audio_stream_player_2d.h Modernize atomics 2021-02-18 17:12:46 +01:00
back_buffer_copy.cpp Initialize class variables with default values in scene/ [1/2] 2021-02-07 22:29:31 +01:00
back_buffer_copy.h Initialize class variables with default values in scene/ [1/2] 2021-02-07 22:29:31 +01:00
camera_2d.cpp Enable Camera2D smoothing on limit change 2021-06-30 16:21:29 -07:00
camera_2d.h Use real_t in non-physics 2D nodes 2021-03-19 13:04:45 -04:00
canvas_group.cpp Use real_t in non-physics 2D nodes 2021-03-19 13:04:45 -04:00
canvas_group.h Use real_t in non-physics 2D nodes 2021-03-19 13:04:45 -04:00
canvas_modulate.cpp Rename instance()->instantiate() when it's a verb 2021-06-19 20:49:18 -06:00
canvas_modulate.h Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
collision_object_2d.cpp Add support for controlling physics nodes' behavior when disabled 2021-06-30 09:20:44 -07:00
collision_object_2d.h Add support for controlling physics nodes' behavior when disabled 2021-06-30 09:20:44 -07:00
collision_polygon_2d.cpp KinematicBody split between new CharacterBody and PhysicsBody 2021-06-04 11:40:36 -07:00
collision_polygon_2d.h Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
collision_shape_2d.cpp KinematicBody split between new CharacterBody and PhysicsBody 2021-06-04 11:40:36 -07:00
collision_shape_2d.h Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
cpu_particles_2d.cpp Use PROPERTY_USAGE_NONE instead of 0 for no property usage 2021-07-01 14:13:27 -04:00
cpu_particles_2d.h Increase the default 2D gravity to 980.0 2021-05-05 22:49:06 -04:00
gpu_particles_2d.cpp Fix editor suffixes and degrees conversion 2021-06-30 12:38:25 -03:00
gpu_particles_2d.h Support for 2D particles to collide against SDF 2021-05-23 16:43:36 -03:00
joints_2d.cpp Fix editor suffixes and degrees conversion 2021-06-30 12:38:25 -03:00
joints_2d.h Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
light_2d.cpp Tweak dozens of editor property hints for consistency 2021-05-25 02:50:35 +02:00
light_2d.h Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
light_occluder_2d.cpp Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
light_occluder_2d.h Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
line_2d.cpp Line2D::set_point_position Fail if passed index is out of bounds 2021-02-21 13:50:11 +01:00
line_2d.h Initialize class variables with default values in scene/ [1/2] 2021-02-07 22:29:31 +01:00
line_builder.cpp Fixes small typos and grammar correction 2021-03-12 19:05:16 +05:30
line_builder.h Initialize class variables with default values in scene/ [1/2] 2021-02-07 22:29:31 +01:00
mesh_instance_2d.cpp Fixed a bunch of connection errors in TextureEditorPlugin 2021-06-12 08:01:02 +03:00
mesh_instance_2d.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
multimesh_instance_2d.cpp Fixed a bunch of connection errors in TextureEditorPlugin 2021-06-12 08:01:02 +03:00
multimesh_instance_2d.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
navigation_agent_2d.cpp Merge pull request #47960 from smix8/issue_47334_navagent2d_target_reached 2021-04-27 13:34:48 +02:00
navigation_agent_2d.h put distance check to target into function 2021-04-27 11:22:37 +02:00
navigation_obstacle_2d.cpp Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
navigation_obstacle_2d.h Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
navigation_region_2d.cpp Rename instance()->instantiate() when it's a verb 2021-06-19 20:49:18 -06:00
navigation_region_2d.h Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
node_2d.cpp Fix editor suffixes and degrees conversion 2021-06-30 12:38:25 -03:00
node_2d.h Fix editor suffixes and degrees conversion 2021-06-30 12:38:25 -03:00
parallax_background.cpp Use real_t in non-physics 2D nodes 2021-03-19 13:04:45 -04:00
parallax_background.h Use real_t in non-physics 2D nodes 2021-03-19 13:04:45 -04:00
parallax_layer.cpp Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
parallax_layer.h Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
path_2d.cpp Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
path_2d.h Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
physical_bone_2d.cpp Add support for controlling physics nodes' behavior when disabled 2021-06-30 09:20:44 -07:00
physical_bone_2d.h Initialize PhysicalBone2D::parent_skeleton 2021-06-13 12:10:11 +08:00
physics_body_2d.cpp Make move_and_slide collision detection more accurate 2021-07-01 15:15:42 -07:00
physics_body_2d.h Merge pull request #50009 from reduz/fix-suffixes-and-degrees 2021-06-30 18:47:40 +02:00
polygon_2d.cpp Fix editor suffixes and degrees conversion 2021-06-30 12:38:25 -03:00
polygon_2d.h Fix editor suffixes and degrees conversion 2021-06-30 12:38:25 -03:00
position_2d.cpp Improve axis awareness and visibility for Position2D and Position3D 2021-06-02 21:53:50 +02:00
position_2d.h Use real_t in non-physics 2D nodes 2021-03-19 13:04:45 -04:00
ray_cast_2d.cpp Prevent setting too big or too small Collision Mask and Layer 2021-04-30 17:19:04 +02:00
ray_cast_2d.h Highlight collision, correct the size and make the arrow a bit less thick for low-res game 2021-03-05 00:32:49 +01:00
remote_transform_2d.cpp Rename is_a_parent_of() to is_ancestor_of() 2021-06-21 08:39:28 -06:00
remote_transform_2d.h Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
SCsub SCons: Format buildsystem files with psf/black 2020-03-30 09:05:53 +02:00
skeleton_2d.cpp Fixed mistake in binding of Skeleton2D::execute_modifications 2021-06-08 12:18:33 +10:00
skeleton_2d.h New and improved IK system for Skeleton2D 2021-06-05 15:19:51 -04:00
sprite_2d.cpp Fixed a bunch of connection errors in TextureEditorPlugin 2021-06-12 08:01:02 +03:00
sprite_2d.h Change frame_coords to Vector2i 2021-05-23 21:38:27 +02:00
tile_map.cpp Fix crash when using TileMap::fix_invalid_tiles 2021-06-14 14:58:55 +08:00
tile_map.h Deleted YSort, moved its functionality directly into Node2D. 2021-06-05 00:55:25 -07:00
touch_screen_button.cpp Rename instance()->instantiate() when it's a verb 2021-06-19 20:49:18 -06:00
touch_screen_button.h Initialize class variables with default values in scene/ [1/2] 2021-02-07 22:29:31 +01:00
visible_on_screen_notifier_2d.cpp Rename VisibilityNotifierXD to VisibleOnScreenNotifierXD 2021-06-16 22:01:39 -03:00
visible_on_screen_notifier_2d.h Rename VisibilityNotifierXD to VisibleOnScreenNotifierXD 2021-06-16 22:01:39 -03:00