a ver, a cada frame lo que no hay que hacer es CARGAR el mapa, pero si le vas a hacer scroll (o si se va a blitear algo encima q se mueva) si que hace falta dibujar el mapa cada frame porque si no link iria dejando un rastro encima...
yo el scroll si no tiene una funcion tu librería haría algo cómo lo que tengo puesto yo en el juego q estoy haciendo: cuando el personaje cruza determinado punto de la pantalla (x ej: 300) le sumo a una variable para la camara (yo lo llamo camarax y camaray) la velociadad a la que anda el personaje y luego en el bliteo del mapa añadiría algo así:
/** FUNCION QUE DIBUJA LOS MAPAS **/
void DrawMap(void) {
for(Pradera.posY = 0; Pradera.posY < 30; Pradera.posY++) {
for(Pradera.posX = 0; Pradera.posX < 40; Pradera.posX++) {
Pradera.tile->SetPosition(Pradera.posY * 32
- camaray , Pradera.posX * 32
- camarax );
Pradera.tile->Draw(NULL, Pradera_map0[Pradera.posX][Pradera.posY]);
// Pradera.tile->Draw(NULL, Pradera_map1[Pradera.posX][Pradera.posY]);
}
}
}
**teniendo en cuenta que camarax suma la velocidad del personaje en el limite de la derecha de la pantalla y lo resta en el de la izquierda y camaray suma hacia abajo y resta hacia arriba.
Así debería funcionarte, digo yo... aunque no programe demasiado bien
Pruebalo y me dices si te va, Saludos!