Mira me explico. Estaba hoy trabajando en el sistema de colisiones de mi juego.
Que funciona de la siguiente manera, carga una imagen en blanco y negro el negro es colisión, entonces lo que hace cada vez que comprueba si hay colisión es comprobar si el color de la imagen es negro, si es negro colisiona, y he pensado si lo hiciera de esta otra forma en tiempo play iría más rápido, me explico:
1- Carga la imagen en blanco y negro, comprueba su resolución en pixels.
2- Creo un bucle que añade a un bool[][] true si hay colisión y false si no lo hay.
entonces la idea básica es que a la hora de cargar el mapa y todo eso es algo más lento quizás pero a la hora de jugar es más rápido, por que no hay que llamar a una función par comprobar el color de cierto pixel de la imagen.
for(int y=0;y<SizeMapY*32;y++){
for(int x=0;x<SizeMapX*32;x++){
if(IMap->getPixel(x,y) == sf::Color::Black)PixelMap[y][x]=true;
else PixelMap[y][x]=false;
}
}
El único inconveniente que le veo es a la hora de hacer mapa exagerados de quizás
bool map[1000000][1000000]
Los números son cada pixel, en este caso son 1000000 de ancho por alto. Una exageración pero bueno xD
Ustedes que opinan sobre esto?
Esto es una archivo de texto generado a partir de bucle.
http://img338.imageshack.us/img338/3791/mapmg.png