Skip to content
Snippets Groups Projects
Select Git revision
  • fa572bef7eba3048715bb556bad09cacf27b1749
  • v2 default protected
  • master
3 results

setup.py

Blame
  • Bord.cs 1.35 KiB
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class Bord : Comportement
    {
        static public float Urgent = 3.0f;
        static public float Preoccuppant  = 5.0f;
        static public float Intrigant = 8.0f;
    
        public Bord(Agent proprietaire) : base(proprietaire) {}
    
        public override Vector3 reagir(List<Observation> observation) {
            List<Vector3> vectors = new List<Vector3>();
            vectors.Add(proprietaire.direction);
            foreach(Observation o in observation) {
                if (!o.objet.isAlive()) {
                    if(grandDanger(o)) for(int i=0;i<3;i++) vectors.Add(fuir(o.distance));
                    else if(moyenDanger(o)) for(int i=0;i<2;i++) vectors.Add(fuir(o.distance));
                    else if(petitDanger(o)) vectors.Add(fuir(o.distance));
                }
            }
            Vector3 res = Utils.meanVector(vectors);
            return Utils.noiseVector(res,nbBruit,bruit);
        }
        
        private bool grandDanger(Observation o) {
            return (Utils.normVector(o.distance) < Urgent);
        }
    
        private bool moyenDanger(Observation o) {
            return (Utils.normVector(o.distance) < Preoccuppant);
        }
    
        private bool petitDanger(Observation o) {
            return (Utils.normVector(o.distance) < Intrigant);
        }
    
        private Vector3 fuir(Vector3 d) { return -d.normalized; }
    }