Edit:
My player moves like this:
if(input.isKeyDown(Input.KEY_W))
{
shiftY -= delta * speed;
idY = (int) shiftY;
if(shift == true)
{
shiftY -= delta * runspeed;
}
if(isColliding == true)
{
shiftY += delta * speed;
}
}
if(input.isKeyDown(Input.KEY_S))
{
shiftY += delta * speed;
idY = (int) shiftY;
if(shift == true)
{
shiftY += delta * runspeed;
}
if(isColliding == true)
{
shiftY -= delta * speed;
}
}
if (input.isKeyDown(Input.KEY_A)) {
steve = left;
shiftX -= delta * speed;
idX = (int) shiftX;
if(shift == true)
{
shiftX -= delta * runspeed;
}
if(isColliding == true)
{
shiftX += delta * speed;
}
}
if (input.isKeyDown(Input.KEY_D)) {
steve = right;
shiftX += delta * speed;
idX = (int) shiftX;
if(shift == true)
{
shiftX += delta * runspeed;
}
if(isColliding == true)
{
shiftX -= delta * speed;
}
}
(I have tried my own collision code, but its horrible. Doesn't work in the slightest)