godot/scene/2d
PouleyKetchoupp beeebb4c2f 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-19 08:09:17 -07:00
..
animated_sprite.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
animated_sprite.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
area_2d.cpp Uncap the range for gravity and change the slider hints 2021-06-03 02:08:57 +02:00
area_2d.h Return RID instead of Object id in area-body_shape_entered-exited signals. 2021-05-19 10:51:59 +01:00
audio_stream_player_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
audio_stream_player_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
back_buffer_copy.cpp Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
back_buffer_copy.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
camera_2d.cpp Enable Camera2D smoothing on limit change 2021-07-06 11:10:35 +02:00
camera_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
canvas_item.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
canvas_item.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
canvas_modulate.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
canvas_modulate.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
collision_object_2d.cpp Prevent setting too big or too small Collision Mask and Layer 2021-06-27 17:40:07 +02:00
collision_object_2d.h Move collision layer and mask into CollisionObject. 2021-05-08 11:40:57 +01:00
collision_polygon_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
collision_polygon_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
collision_shape_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
collision_shape_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
cpu_particles_2d.cpp Fix color properties of particle nodes/material 2021-07-15 10:25:35 +02:00
cpu_particles_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
joints_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
joints_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
light_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
light_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
light_occluder_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
light_occluder_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
line_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
line_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
line_builder.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
line_builder.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
mesh_instance_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
mesh_instance_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
multimesh_instance_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
multimesh_instance_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
navigation_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
navigation_2d.h Style: Replaces uses of 0/NULL by nullptr (C++11) 2021-05-04 16:30:23 +02:00
navigation_polygon.cpp Remove duplicate ERR_PRINTS macro 2021-06-16 11:56:25 +01:00
navigation_polygon.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
node_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
node_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
parallax_background.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
parallax_background.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
parallax_layer.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
parallax_layer.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
particles_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
particles_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
path_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
path_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
physics_body_2d.cpp More accurate unsafe motion calculation 2021-07-19 08:09:17 -07:00
physics_body_2d.h Fix move_and_collide causing sliding on slopes 2021-07-19 08:09:16 -07:00
polygon_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
polygon_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
position_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
position_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
ray_cast_2d.cpp Prevent setting too big or too small Collision Mask and Layer 2021-06-27 17:40:07 +02:00
ray_cast_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
remote_transform_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
remote_transform_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
SCsub SCons: Format buildsystem files with psf/black 2020-06-10 15:30:52 +02:00
skeleton_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
skeleton_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
sprite.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
sprite.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
tile_map.cpp Prevent setting too big or too small Collision Mask and Layer 2021-06-27 17:40:07 +02:00
tile_map.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
touch_screen_button.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
touch_screen_button.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
visibility_notifier_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
visibility_notifier_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
y_sort.cpp Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
y_sort.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00