-
-
Notifications
You must be signed in to change notification settings - Fork 21.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
KinematicBody2D. one way collision makes the character fall through when standing on an upward moving platform #9399
Comments
uh.. man this will be seriously difficult to fix, will think about this for
a while..
…On Mon, Jun 26, 2017 at 2:15 PM, rubenjavier ***@***.***> wrote:
*Operating system or device - Godot version:*
Linux Ubuntu 64bit commit 36548a3
<36548a3>
*Issue description:*
in OneWay collisions you can't set how far you can go inside the
CollisionShape2D, and for moving platforms going upward, you always go
throught the platform and fall, when the moving platform is moving downward
or horizontally, you dont fall
*Steps to reproduce:*
set a KinematickBody2D with a CollisionShape2D and set the OneWay
Collision checkbox on the shape make the shape move upward with
set_transform and see your character fall through
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#9399>, or mute the thread
<https://github.com/notifications/unsubscribe-auth/AF-Z25lBqHFhQ_7NtJsJFXtnZJFB4sQYks5sH-cXgaJpZM4OFmZ9>
.
|
dont worry, take your time and do your thing... if someone is really good at thinking here, its you man |
Confirmed by @damarindra in #9614, with a test project to reproduce the issue:
|
The issue affects rigid bodies too. |
fixing this is difficult, will kick to 3.1 |
thinking about it, one alternative could be to, once collision happen, to apply it normally (not one-way) in the next frames (must remember that it was one way in the previous frame, this is where things get difficult specially for Kinematicbody), but it should be possible.. |
sad news to have it kicked into next release, this leaves many of my platforms broken... but I trust you reduz |
First of all thank you for your report and sorry for the delay. We released Godot 3.0 in January 2018 after 18 months of work, fixing many old issues either directly, or by obsoleting/replacing the features they were referring to. We still have hundreds of issues whose relevance/reproducibility needs to be checked against the current stable version, and that's where you can help us. For bug reports, please also make sure that the issue contains detailed steps to reproduce the bug and, if possible, a zipped project that can be used to reproduce it right away. This greatly speeds up debugging and bugfixing tasks for our contributors. Our Bugsquad will review this issue more in-depth in 15 days, and potentially close it if its relevance could not be confirmed. Thanks in advance. Note: This message is being copy-pasted to many "stale" issues (90+ days without activity). It might happen that it is not meaningful for this specific issue or appears oblivious of the issue's context, if so please comment to notify the Bugsquad about it. |
This still affects 3.0.2 and current master. |
Is there any work-around for this issue? Like using a function like using a function similar to |
@jahd2602 not easy, you can put 2 shapes on the platform, if the player touched the one side it on the solid part, enable the full contact shape, keep monitoring the player until it leaves, disabling the full contact shape. |
Thanks, @eon-s, I could get a good behavior by disabling one-way and adding this to the moving platform: func _physics_process(delta):
$CollisionShape2D.disabled = global_position.y <= global.player.global_position.y |
Hi, It happens to me that when standing on one way collision ground, if a KinematicBody2D or RigidBody2D stands on another KinematicBody2d or RigidBody2d, ti sometimes makes the one below fall trhough the ground. Is this issue related to this? It still affects 3.1 alpha. |
The fix was made after 3.1 alpha, and I guess yes your issue is related. |
Thanks! And is there any workarround for this in stable release?
This does not work for me cause i have multiple bodies... should i open new question for this? |
@pablof7 this is marked as cherry pick so it will probably land on the next 3.0 A workaround for many bodies may be using special layers or exceptions, controlled on each body (or apply the fix and build a custom engine). |
Hi, |
@pablof7 I think that is another problem, open a new issue and provide an example to so it can be tested easily. |
Ok, Thanks! |
I am seeing the same issue in 3.0.6 and 3.1 alpha. Attaching example. If you jump a few times (ui_up) you will fall through the platform. |
@hedrickbt it was fixed after alpha, check on a more recent build. If you cannot build from master, try with the daily builds from this site https://bintray.com/calinou/godot |
@eon-s , confirmed! It is working great. Thanks for the help. I missed that I needed to run based on the nightly build of 3.1+: https://hugo.pro/projects/godot-builds/ |
Operating system or device - Godot version:
Linux Ubuntu 64bit commit 36548a3
Issue description:
in OneWay collisions you can't set how far you can go inside the CollisionShape2D, and for moving platforms going upward, you always go throught the platform and fall, when the moving platform is moving downward or horizontally, you dont fall
Steps to reproduce:
set a KinematickBody2D with a CollisionShape2D and set the OneWay Collision checkbox on the shape make the shape move upward with set_transform and see your character fall through
The text was updated successfully, but these errors were encountered: