|
Taller
|
| >> Taller >> Curso de Inteligencia Artificial by Slàinte >> I.A. no condicionada. |
|
El tipo de comportamiento más sencillo de conseguir es éste, ya que no hay que preocuparse de nada de lo que ocurre en pantalla. La manera de afrontar este tipo de movimiento depende del tipo de trayectoria que deba describir el proceso, pero la inmensa mayoria puede
resolverse con lo que daremos en llamar trayectorias incrementales.
Veamos un ejemplo:
Para conseguir ahora que se realice el movimiento, en cada frame variamos las coordenadas x,y
del proceso sumando los incrementos INC_X en INC_Y para el frame siguiente.
Otra de las maneras más comunes de almacenar trayectorias fijas es determinando puntos de control de la trayectoria.
Para este caso, el ejemplo anterior queda modificado de la siguiente manera:
Lo primero que nos ha de llamar la atención es que almacenamos coordenadas absolutas de pantalla, a diferencia del caso del array incremental, en que almacenábamos coordenadas relativas a las coordenadas instantáneas del proceso. Este hecho hace el array incremental muy útil en zonas con cálculo relativo de distancias (scrolls, por ejemplo) ya que el comportamiento no se ve afectado por la posición inicial del proceso respecto al scroll. Una implementación a través de puntos de control también puede ser usada en esos casos, pero ha de tenerse cuidado en desvincular las relaciones entre la x,y dentro del scroll y la x,y dentro de pantalla, por lo que este segundo método es más apropiado para pantallas estáticas o casos en que la trayectoria se calcula respecto a las coordenadas absolutas de pantalla. Para interpolar ahora los puntos necesarios en la trayectoria supongamos que interpolaremos 10 puntos entre cada punto de control,
para lo cual debemos calcular los incrementos relativos en x e y (debe saberse la posición inical):
Jugando con la función primitiva de la trayectoria conseguiremos las fórmulas de interpolación adecuadas. Sobretodo, tened cuidado con las funciones trigonométricas en DIV, contad que está por ahi ese multiplicador de miligrados que fastidia mucho si no lo recuerdas... Nos faltaría cubrir, en el caso de ser necesario, cuándo dispara o hace algo en particular el proceso que tiene la I.A., pero la verdad, la cantidad de acciones posibles a tener en cuenta es infinita... baste decir que controlando si se está a punto para hacer la acción o no (puede ser de forma aleatoria con RAND o verse afectado por a que distancia esté el enemigo por ejemplo). Ese campo ya depende más de cada juego que del cometido de este curso así que os invito a que profundiceis un poco en ello por vuestra cuenta. Y con esto se acaba la parte referente a la I.A. no condicionada independiente.
[ INTRODUCCIÓN ] [ ENTREGA 1 ] [ DEPENDIENTE ] |
||||||||||||||||||||||||||||