Edit: I accidentally deleted a piece of the code so every once in a while the y movement gets all linear. It wasn't like that before I don't know what happened. This was a pain to improve. It's not perfect, but it's better, and playable. It kind of looks like ball collision, which is a huge improvement. Fixing this was unsurprisingly very complicated, which had the side effect of making the code extremely unreadable. See inside, it's just a pile of codeslop. Unfortunately, the ball collision is so consistent that it often turns into a boring loop of bouncing left and right. I made it too predictable, which really isn't much better than the "so inconsistent it's basically random" collision alex made.