I'm not sure I get what the problem is, would you mind explaining further?
I cannot see the shake, though I suppose you are correct that the character is not moving the same number of pixels each frame. If you can see the 1pixel difference you've a better eye than me.
the shake isn't really visible in the gif, but basically what happens is uh
it's like the sprite doesn't want to move both left and up at the same time(for example), so it rapidly switches between both of them for some fraction of a pixel each
here's the movement code by the way, forgot to add that
if keyleft
{
if !keyupleft || !keydownleft
{x -= Playerspeed;}
else
{x -= Playerdiagspeed;}
}
if keyright
{
if !keyupright || !keydownright
{x += Playerspeed;}
else
{x += Playerdiagspeed;}
}
if keyup
{
if !keyupleft || !keyupright
{y -= Playerspeed;}
else
{y -= Playerdiagspeed;}
}
if keydown
{
if !keydownleft || !keydownright
{y += Playerspeed;}
else
{y += Playerdiagspeed;}
}