J.Koher 2022-11-24 17:24 (Edited)
I have cleaned up the collision-correction and impulse-normalization routines, as well as added air tricks, rails, crashing, and a drop-in-snap capability (just approach a copice edge slowly and you'll drop in. There are still some bugs/refinements to be dealt with though.
Ollie: Press A when grounded (or within the coyote-time limit)
Pop Shuvit: Press B when grounded
Shuvit: Press B when airborne
Kickflip: Press B + UP when airborne
Heelflip: Press B + DOWN when airborne
Railsnap: Press A when airborne after active jump to snap to an in-range rail
This here is my skate (hover? lol) engine. It's just a sandbox at this point. The engine so far is not eloquently coded nor notably refined, but it does have the basic functionality expected of a proper 'skating engine'. Though there is still a lot that I want to add, including tricks and grinds, as well as coding refinements like vertical scroll for the big airs, BG tile flip-checking to save char's in rom, and a refined impulse-normalizing routine (much of that has been brute-forced into working). What it does have is ramps. Not only that, but impacts, input, friction and gravity are slope-normalized. The gravity and velocity limits are dynamic to be able to dial in the flow and feel of the game (still working on that). Transitions between slope changes while 'grounded' are done so that all of the incoming velocity is normalized to the new slope, other slope collisions and gravity are done using impulse normalization (where only the parallel-to-slope component of velocity survives collision. There are no wheel sprites yet and there may not be even in the final game because the transitions are rough under this 8-bit-esque tile-based regime. It'll probably remain a 'hover board' in the release game to float out the chonkiness of the faux-rotation animations.