Crear comportamiento MoveBehaviour
Comportamiento periódico. Periodo INTERVAL_TO_MOVE
- Comprobar si ya está destino (si ya está acaba la iteración)
- IF si ya está en destino:
- saca de la cola de próximos destinos el siguiente punto.
- calcula la nueva orientación con
calculate_new_orientationcon el destino recién sacado de la cola.
- ELSE Si no lo hay acaba la iteración.
- IF si ya está en destino:
- mover un dt.
dt = current_time - self.agent.last_time_move->move(dt)- si no ha podido moverse (
MV_CANNOT_GET_POSITION) recalcula congenerate_path, lo cual vacía la cola de destinos y la llena con el nuevo punto degenerate_path.
- si no ha podido moverse (
Renombrar generate_path por generate_intermediate_point
acción goto
- vaciar la cola de destinos
- actualizar
self.agent.movement.destinationcon las nuevas coordenadas. - calcula la nueva orientación con
calculate_new_orientation