Third try.
So my biggest problem with this game is that the physics are too realistic. Your jump height is fixed, you can’t accelerate in midair, you collide with the sides and bottoms of platforms, and the final part of your swing slows you down.
In two out of my three runs, I had this happen to me: I jumped too late and hit the front of a platform. I fell to the ground below, but I still wanted to get onto that platform, so I jumped again. I expected to move forward enough to get on, but nope, I jumped straight up and fell straight down. Then I ran under the platform (and in my third run, this is what killed me).
In one of my first two runs (can’t remember which), I died by hitting the side of a platform with a pit underneath. Ideally in this situation, the character should grab the edge and climb up, like in Super Smash Bros. I do realize that would require a bunch of extra programming and animation, so here’s a simpler solution:
When the character collides with a platform, push them to the top of the platform, no matter which side they hit. This solves a multiple problems at once. Underneath a platform and want to get on top? Just jump into it. Falling past a platform? You can grab it and get on top. Frustrated by how platforms sometimes slow you down? Now they don’t affect your horizontal movement at all.
For better results, make the character do a forward flip when this happens. This will look close enough to a get-up animation without you having to go through the trouble of animating it.
Players need to be able to control their jump height, especially if you’re asking them to land on small platforms. To do this, first reduce the base jump height. This will allow players to perform small jumps if they want. Next, since you still want them to be able to reach the full jump height, reduce gravity until they lift their finger.
Multiple times, I found that I didn’t have enough speed to make it from one log to the next. If I let go and tried to grab again, I’d just grab the first log again.
Hanging onto a log wasn’t very interesting. It would have been more interesting if I could have swung back and forth to build up speed, but that isn’t possible in a one-button game, and it isn’t interesting enough to be worth adding more buttons. Besides, if it was possible, it would slow down the game, and it looks like this game is meant to be fast-paced.
I was able to build up a little speed by releasing and re-grabbing with a certain rhythm, but again, this didn’t make for interesting gameplay.
Here’s a better solution: don’t let the character grab a log behind them. That way, if the character is between two logs, they’ll always grab the next one.
Holding on indefinitely is a problem as well. Unless you have a way to make it fun, it’s better to take it out. When the character reaches the peak of their swing, they should automatically let go of the log.
Together, these suggestions will keep the character moving forward.
It makes perfect sense to lose x velocity at the end of the swing. That velocity was converted into y velocity, so of course you slowed down.
But… that just isn’t fun, and fun trumps realism. The solution: keep track of the character’s previous x velocity. If the character is swinging and their x velocity decreases, revert it to the previous value. Characters should be able to speed up while swinging, but not slow down.