I’ve made the post into a research topic and forked the Celeste Dash mechanic discussion into a separate Help topic. Celeste Dash Mechanic in Platformer?
What if the checks simply stores the distance between the previous constant y and the new y, then takes that and stores it, and if the y remains constant or negative then do nothing, then if the y increases again take that value and add it to the previously recorded (second in this tangent) one, check to see if it’s around the value for a double jump (over a normal jump), then as soon as it’s over do something and record a new y value to check, then repeat the process? Something like that should work.
We have to factor in x somewhere though, because you can have a horizontal double jump without exceding the normal y of a one jump.
you can detect if the player coords = something hold on
Wow. Can someone recap what we have so far, in an organized way @here?
Sure. Lemme cook.
I think it’s actually this simple for a pure y jump. Figuring out the x jump is easy enough, combining them together is harder.
Is this new distance between y and previous constant y (how about two repeated instances) greater then a single jump (with whatever y value that is?)
Then we can do a separate check for x.
And then magically combine them.
I cannot wait to get my hands on this block code lol.
From this topic, I know that the max horizontal jump length is VERY ROUGHLY 7. So, there should be a check if your x-value increases by 7 after all the checks…?

I keep getting pinged by @.here

mind ya’ll calm down with it pls??
but a double jump = 60 Y can you detect if there y changes by 60 but if there teleported
Oh, sorry about that.
What if we integrate it somehow? So we need to combine these- x and y- into a diagonal line on a graph, right, because it’s a slope, and if that diagonal line exceeds whatever our value is on either axis we call it a double jump! We need to graph this out (I’m a visual learner lol)
I’ll get out a Desmos link in a sec. Want to make sure I don’t dox myself lol.
If we are checking our y and x values at any given moment, we can set parameters. So assuming we kick it off with either a positive or negative y value, the constant start of a jump, we can start increasing the numbers and figuring out the line.
But this is based on tiles, what about coordinates, I keep getting 4 as max y for a single jump. And if I double jump at the peak of the first jump, I can get 6. I might not be doing something right.
Yeah, I think four is correct. But I think this graphing idea can work.
Wired’s solution is probably the most accurate you can get, but to make sure you aren’t “jumping” when you are walking up a slope, make sure to check over a period of 5 or something seconds to see if the player has gained at least 4 tiles of height.
Or disable it with a zone.
If you calculate all the maximum single jump values (height, horizontal displacement), the final check could be if you’ve gone more than sqrt(max height^2 + max distance^2).
You can change the interval to be so small walking up the slope is not counted… maybe? We also might need to account for slope jumps, that’s where this problem gets messy.
2 seconds, probably.
Yeah. So I think we should start some testing, it’ll be easier to think of stuff one we’re actually playing around with blocks and stuff.
Leave em out for now, a map can easily not have those.
Nice.
A double jump is not the same height of an original jump assuming you are jumping straight up from the with no running start or anything.
I tried, while stationary and while jumping, I got 4 for one jump and 6 if I jumped twice without any downfall. I’ll keep trying however to make this more concrete.
Yep, nothing is happening, I have a prop midair and I jumped the same amount above it while staying still and while running. Beware though I used my eyes for this so it might not be accurate, but it seems that running doesn’t effect y change while jumping.