I won’t go into too much detail here, but here’s how it works in this instance:
The player has a speed at which he can move. This is a value determining how many tiles he can move per second.
The wait-period between each move is calculated accoridng to this.
I also have a camera, which is really just a set of world-coordinates. The game is always rendered so that these world-coordinates is always at the center of the screen.
Now, the camera also has a speed at which it can move - also a tiles/second value. The difference is that the cameras position is updated every frame according to this.
Therefore, the camera and the player moves at exactly the same speed.
I previously tried to have the camera move much faster, but it ruined the game feel, because it stopped to wait on the player every move. If the camera stops, the game feels like it’s not flowing right anymore - even if the player can move wicked fast.
Now, the player actually moves pretty slowly and I don’t think it feels bad at all. Sure, moving is a little clunky, but it’s flowing.