When moving horisontally, your horisontal speed is 1 pixel per step (game runs 30 steps per second). Same goes for vertical movement. So when doing both at the same time, both horisontal and vertical speeds are 1, resulting in an effective diagonal speed of sqrt(2), or 1.4. It's just a quirk of my movement system. I could do something fancier, but at this low resolution, horisontal and vertical speeds that aren't ints looks really bad, so I kept it simple.