My team and I are developing a 2D platformer with C++/SDL/OpenGL, and we already defined a collision system, but we have a problem checking collisions with the tilemap.
The tiles of the tilemap are 32×32, so we try to define that the max speed in X and Y of the player it’s less than 32 because in this case we found the problem that if the speed it’s bigger than the tile size, when checking the collisions the position it’s updated with the speed which it’s more than 32, so in that case, the position skip a tile which causes a huge problem for verification, so at the momento we limit the X and Y speed to 30, but we don’t know how make the speed bigger than the tile size without losing the complete collision detection with some possible tiles that may be skiped.
Sweep tests.
Basically instead of simple box/box collisions you need to check for collisions between your stationary level geometry boxes and the shape formed by moving your mobile box through (position) to (position+velocity).