Cómo escribir código para evitar que un objeto de juego de IA deje los límites de un nivel en un juego en Android Studio (Java)

Método simple:

Cada “turno” (esto podría ser un marco, esta podría ser cada oportunidad que tenga de moverse, siempre que pueda moverse), haga que la IA genere una lista de posibles lugares a los que podría ir. Cuando esté en esta lista, verifique que cada lugar al que pueda ir no lo coloque fuera del nivel. Luego, elegirá lo que lo coloca dentro de los límites del nivel. Esto también funciona para evitar barreras y otros objetos en el terreno.

Método ligeramente más difícil:

Dale un poco de previsión y haz que evite los bordes del mapa. Dale dónde están las cosas y deja que elija a dónde quiere ir (necesitarás escribir un método que pueda seguir). Luego muévete según la ubicación. Digamos que si ve una pared dentro de 2 unidades de su posición, muévase en sentido contrario. Esto impedirá que se acerque a los bordes. Una vez más, también funciona para una IA más compleja, por ejemplo, evitando jugadores bajo mecánicas de miedo o tácticas furtivas, lo que sea.

Personalmente, he implementado la opción 1 en Java. Muy simple, muy fácil, dada una cantidad fija de movimiento finito en cualquier dirección y un número finito de direcciones posibles, es muy factible y razonablemente rápido de correr.