public void Move(float distance, Direction direction)
{
switch (direction)
{
case Direction.N:
Y -= distance;
break;
case Direction.S:
Y += distance;
break;
case Direction.E:
X += distance;
break;
case Direction.W:
X -= distance;
break;
case Direction.NE:
X += distance;
Y -= distance;
break;
case Direction.NW:
X -= distance;
Y -= distance;
break;
case Direction.SE:
X += distance;
X += distance;
break;
case Direction.SW:
X -= distance;
Y += distance;
break;
case Direction.Down:
Z -= distance;
break;
case Direction.Up:
Z += distance;
break;
default:
throw new ArgumentOutOfRangeException("direction");
}
}