Open snoopdouglas opened 3 years ago
Related to #43012 and #43014.
I've reproduced this in 3.2.4-rc1.
Edit: still reproducible in 3.3.4
Confirmed still present in 3.4 beta 6 and master (6877cccfb19a88211f864dade18eea7b12719c35).
I can confirm that the issue is still reproducible in v3.5.3.stable.official.
Here's a workaround I used:
if is_on_wall() && is_equal_approx(position.x, round(position.x)):
position.x += 0.001
Godot version: 3.2.3-official
OS/device including version: Ubuntu Linux 20.04
Issue description: Possibly related to #33833.
When using
KinematicBody2D
'smove_and_slide
ormove_and_slide_with_snap
to enact gravity, I've noticed that when a body is exactly on the diagonal edge of a tile:is_on_floor()
returns falseis_on_wall()
returns truemove_and_slide
)So we essentially end up with a Mario 64 speedrunner's dream:
Interestingly, the value of
y
tends to fluctuate, and sometimes (seemingly non-deterministically) the body unhooks itself and so goes flying downwards.Steps to reproduce:
KinematicBody2D
on the edge of a tileMinimal reproduction project: floor-wall-test.zip