As I was asked on Discord, I’m opening this problem here on the forum to try to solve
The problem, as you can see in the video, is that when trying to go down a ladder, nothing happens. Only if you’re in the middle of it.
It also happens if you try to get close to the ground, notice that the character doesn’t go down.
It also happens if in the GD5 example.
The correct thing would be, if the character reached the bottom of the stairs and had a floor, the collision of the stairs should not be accepted. But I tried a lot of things here and nothing is resolved… Maybe I already have my head full of things. But it would help if someone knew what to do!
what I would like to do to get down, would be like the Mega Man game, look:
It can’t be like that, because if the ladder just goes down, there’s no way to jump on it to go down, it doesn’t make sense! Think with me: if there is a ladder on the floor that you are forced to descend on, how do you do it? jumping is not possible! If the floor is “jumpthru” everything, but what if it isn’t?
Looking at this image, I know that my only way is to go down… But how do you do it? Do you understand my point of view? You don’t want to leave a ladder above ground level to work around a bug or error that hasn’t been fixed.
So I’ve tried this a few different ways, and I still can’t reproduce this issue. Ladder objects automatically let you go down them because they don’t hold the player up at all (you fall as soon as you walk on top of one)
Just to double check on this, you aren’t doing anything unusal like putting a ladder over a platform object, are you?
I ask because ladders don’t override other platform objects or behaviors since it works via falling. So if you’re placing a ladder over another platform (or have multiple platform behaviors on the ladder object), you won’t be able to go down it.
Now go to the ladder, go up a little and stop, the character will stop. So far so good. Now go down and try to get out to the ground, WITHOUT JUMPING!
That is, when the player touches the ground, even though he is on the ladder, he must let go of the ladder and stay in the idles animation or any other.
Unfortunately, this is either something with your events or animations/hitboxes. I disabled the Player and Ladder events then:
Enabled default controls.
Moved onto the ladder, stopped.
Moved off the ladder by moving down and then hitting left/right.
Edit: Definitely the events somewhere. Collision masks seem fine.
There seems to be numerous events that could break stuff in here:
Using an “AND” Condition by itself with only a single event within it. As far as I know this condition is explicitly designed to be used only within “OR” conditions (with multiple conditions within them), not by themselves in conditions, since a condition box is already one big “AND”.
The events seem to be trying to replicate a state machine but there is a lot of overlap between them so there could be state conflicts. It’s generally recommended that state machines be done with external events with transitions between each to avoid conflict.
It could be something outside of the above, but it is definitely an event conflict of some kind.
I took another test here, and I’ll pass it on to you. Note that there is no programming, other than a text saying whether or not you are on the ground.
When you go up the ladder, naturally the text receives that “it’s not on the ground”, but even though I reach the edge of the ladder (downwards) the collision with the ground is not recognized. That is, the problem is there. How am I going to make it change an animation if it doesn’t touch the ground?
While I can’t take a look at the other example right now:
As mentioned above, as far as I know Ladders work separate from all other platform based logic, this would include “Is on ground” logic. Ladder platforms, for the most part, are not compatible with any floor-specific events or overlaps with other platforms.
If you’re wanting to say “The player is on a ladder but also at the ground”, I would probably use a combination of the “Is on ladder” condition, a “collision with” condition (and a group of your ground platforms if you have multiple types), and a “Y position of playerhitboxname is > Platformgroupname.Y - PlayerHitboxname.Y()”, specifically in that order. That’ll basically mean “The player is still currently on the ladder, but is in collision with a platform beneath them”.