Buenas. Como lo he pasado un poco chungo para hacer una funcion que detectara colisiones muy pero que muy sencillas (y bastante ineficientes, todo hay que decirlo, ya que es una medida temporal mientras la voy refinando ... se podria decir que esta en fase beta

) hos posteo aqu? el trabajo que tengo hecho. Es un "juego" super chorra y estoy esperando a que me hagan los dibujos del personaje de los otros lados, y de delante y de atras, ya que las imagenes que uso en el juego no son mias (bueno, la "casa" si xDD) sino que las encontre navegando. Bueno, la funci?n de detecci?n en si es esta :
int colision_lados(SDL_Rect personaje, SDL_Rect objeto)
{
/* CODIGO DETECTOR DE COLISIONES entre el personaje y la casa que se carga en medio de la pantalla.
Solo detecta colisiones laterales, crear? otra funci?n para detectar colisiones por arriba o por abajo. */
int distancia_x, distancia_y;
// DETECCI?N DE COLISIONES POR LA DERECHA
if (personaje.x > objeto.x)
{
distancia_x = personaje.x - objeto.x;
if (distancia_x < 40)
{
distancia_y = objeto.y - personaje.y;
if (distancia_y < 35 && distancia_y > -165)
{
return 1;
}
}
}
// DETECCI?N DE COLISIONES POR LA IZQUIERDA
if (personaje.x < objeto.x)
{
distancia_x = objeto.x - personaje.x;
if (distancia_x < 40)
{
distancia_y = objeto.y - personaje.y;
if (distancia_y < 35 && distancia_y > -165)
{
return 1;
}
}
}
return 0;
}Y como archivo adjunto os dejo un .tar con las imagenes usadas y el codigo fuente del programa en C. Esta provado bajo Red Hat 9.0, aunque no creo que haya ningun problema para compilarlo bajo windows.
Espero cualquier comentario por desagradable que sea
??Saludos!!