예제 #1
0
 public BoidSteering(Entity _character, Flock _flock, float _neighbourhoodMaxDistance, float _neighbourhoodMinDotProduct)
 {
     character = _character;
     flock = _flock;
     neighborhoodMaxDistance = _neighbourhoodMaxDistance;
     neighborhoodMinDotProduct = _neighbourhoodMinDotProduct;
 }
예제 #2
0
        public Separation(Entity _character, Flock _flock, float _neighbourhoodMaxDistance, float _neighbourhoodMinDotProduct)
            : base(_character, _flock, _neighbourhoodMaxDistance, _neighbourhoodMinDotProduct)
        {
            dummy = new DummyEntity();
            flee = new Flee(_character, dummy);

            maxNeighborhoodSize = 5;
        }
예제 #3
0
        // constructor
        public VelocityMatch(Entity _character, Flock _flock, float _maxDistance, float _minDotProduct)
            : base(_character, _flock, _maxDistance, _minDotProduct)
        {
            character = _character;
            flock = _flock;

            maxNeighborhoodSize = 10;
        }
예제 #4
0
파일: Cohesion.cs 프로젝트: minas1/flocking
        public Cohesion(Entity _character, Flock _flock, float _neighbourhoodMaxDistance, float _neighbourhoodMinDotProduct)
            : base(_character, _flock, _neighbourhoodMaxDistance, _neighbourhoodMinDotProduct)
        {
            dummy = new DummyEntity();
            seek = new Seek(character, dummy);

            maxNeighborhoodSize = 30;
        }
예제 #5
0
파일: Flock.cs 프로젝트: minas1/flocking
        /// <summary>
        /// Merges flocks and returns a new one
        /// </summary>
        public static Flock MergeFlocks(params Flock[] flocks)
        {
            Flock newFlock = new Flock();

            foreach (var f in flocks)
            {
                foreach (var boid in f.boids)
                {
                    if( !newFlock.boids.Exists(x => x == boid) )
                        newFlock.Add(boid);
                }
            }

            return newFlock;
        }
예제 #6
0
 /// <summary>
 /// Create the bird flock
 /// </summary>
 /// <param name="theNum"></param>
 protected void SpawnFlock()
 {
     if (flock == null)
     {
         flock = new Flock(birdTexture, GraphicsDevice.Viewport.TitleSafeArea.Width, 
                           GraphicsDevice.Viewport.TitleSafeArea.Height, flockParams);
     }
 }
예제 #7
0
        public FlockingSample()
        {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";

#if WINDOWS_PHONE || IOS
            // Frame rate is 30 fps by default for Windows Phone.
            TargetElapsedTime = TimeSpan.FromTicks(333333);
            graphics.IsFullScreen = true;
#endif
            inputState = new InputState();

            flock = null;
            cat = null;

            flockParams = new AIParameters();
            ResetAIParams();
        }