I tried that method. It was the first thing I tried
If I hold down the key the payer doesn't move. I have to repeatedly tap the key.
Yeah, but you have to call handleKeys() on EVERY LOOP, not just when an SDL Key Event is triggered.
If you are checking the key state every single loop, then you will always see the key is down, and it WILL always move.