The box collision type does not have to be a perfect cube. It only needs to be a perfect rectangle (a polyhedron with 6 faces and all 90 degree angles).
You also have to make sure your box’s origin is in the center of its geometry. Shift+ctrl+alt+c to bring up that menu (yep, that’s a real keyboard shortcut, lol)
You can build complex shapes, like stairs, by just using multiple boxes – one for each step.
As far as getting double jumping to work, let’s try to Rubber-Duck it:
-When the player jumps, he is normally ineligible to jump again until he hits the ground
+We want the player to get one extra jump while in mid-air (thus a double-jump)
-When you press the input to jump, this happens:
-We check if ‘on_floor’ == True, if so, we apply force upward
-The act of forcing the player into the air causes our radar to lose the floor, thus making on_floor = False (disabling jump)
-We can add a new sensor, which triggers when on_floor = False, and a new booleen property on the player called ‘jump2’
-In logic, jump2 should be false whenever on_floor is True, but True as soon as on_floor is False
-If jump2 is True, we should be able to jump regardless of the state of on_floor.
+However, if on_floor is False and jump2 is True, and we jump, it should switch off jump2 (thus preventing us from triple-quadruple jumping)
+If jump2 is True when on_floor becomes True, jump2 becomes False
Demo (1)_2x_jump.blend (570 KB)
(PS I may have messed up whatever logic was on your platforms on this file, trying to clean things up a little so I could understand what was going on)