You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Issue description:
The KinematicBody node does not correctly push itself back when it is colliding with multiple that push it in an axis.
In the source code, at the 995th line, you can see that it pushes itself back by each collider according to said collider.
if (collided) {
found_collision = true;
colliders.push_back(collision);
...
}
Although this works with multiple colliders that push the KinematicBody in a single axis by itself, if there are multiple colliders that push in a single axis, that will cause the KinematicBody to land on a wrong position after the collisions.
Steps to reproduce:
Create a KinematicBody.
Create multiple StaticBodys on the same position, preferably a lot.
Attach a script to the KinematicBody that will allow you to move the KinematicBody to the stacked StaticBodys.
Notice how the KinematicBody is repositioned too far away from the StaticBodys, since each of the StaticBodys push the KinematicBody the same amount that would position the KinematicBody correctly by itself.
Godot version:
3.2.2.stable
Issue description:
The KinematicBody node does not correctly push itself back when it is colliding with multiple that push it in an axis.
In the source code, at the 995th line, you can see that it pushes itself back by each collider according to said collider.
Although this works with multiple colliders that push the KinematicBody in a single axis by itself, if there are multiple colliders that push in a single axis, that will cause the KinematicBody to land on a wrong position after the collisions.
Steps to reproduce:
Minimal reproduction project:
KinematicBody Collision Flaw.zip
(Move with left & right arrow keys.)
PS: This is my first time "posting" anything on GitHub, please let me know if something about the post is off.
The text was updated successfully, but these errors were encountered: