El caso es que quiero crearle una IA, el problema esque siempre que llega a la esquina superior izquierda. Empieza a cabecear de forma rara hasta suicidarse (la amarilla es la maquina):
![](http://desmond.imageshack.us/Himg72/scaled.php?server=72&filename=sinttulocl.png&res=landing)
La funcion que gestiona los movimientos de la maquina es la siguiente:
Código C++:
Ver original
void InteligenciaArtificial(Vehiculo &Jugador2) { int color; int color2; bool Movido = false; // Si se choca en el eje X if (Jugador2.MovimientoX != 0) // Si se mueve en el eje x { color = getpixel(screen,Jugador2.X+50*Jugador2.MovimientoX, Jugador2.Y); // Comprobamos si hay algun obstaculo if ((color != 0)&& (color != palette_color[15])) { color = getpixel(screen,Jugador2.X, Jugador2.Y+50); color2= getpixel(screen,Jugador2.X, Jugador2.Y-50); if ((color!= 0)&& (color != palette_color[15])&& (color2 != 0)&& (color2!= palette_color[15])) Jugador2.MovimientoY = 1; else Jugador2.MovimientoY = -1; Jugador2.MovimientoX = 0; Movido = true; // return; } } // Si se choca en el eje Y if ((Jugador2.MovimientoY != 0)&& (Movido == false)) { color = getpixel(screen,Jugador2.X, Jugador2.Y+50*Jugador2.MovimientoY); if ((color != 0)&& (color != palette_color[15])) { color = getpixel(screen,Jugador2.X+50, Jugador2.Y); color2= getpixel(screen,Jugador2.X-50, Jugador2.Y); if ((color!= 0)&& (color != palette_color[15])&& (color2 != 0)&& (color2 != palette_color[15])) Jugador2.MovimientoX = 1; else Jugador2.MovimientoX = -1; Jugador2.MovimientoY = 0; Movido = true; //return; } } }
La función GetPixel es una función de la librería gráfica que te devuelve el color de un determinado adyacente. Lo uso para determinar si el siguiente pixel es un obstaculo o solo parte del fondo.
Saludos!