anchor.diff:            :initform (p2dg:make-color-4 0.5 0.5 0.2 1)
             :accessor entity-color)))
   
  +(defmethod update-entity ((entity entity) (world  world) dt)
  +  ;; TODO if needed.
  +  (values))
  +
   (defmethod draw-entity ((entity entity))
     (with-slots (position color)
         entity
  
positive.code:   (push (make-instance 'food
                         :position (p2dm:make-vector-2d x y))
          (food *world*)))
  
  (defun steering (velocity desired)
    (let ((steering (p2dm:subtract-vectors (p2dm:scaled-vector desired +max-boid-steering+) velocity)))
      (p2dm:clamped-vector steering +max-boid-steering+)))
  
  (defun update-boid (boid dt)
    (with-slots (position velocity)
        boid
      (flet ((apply-force (force)
               (p2dm:add-to-vector velocity (p2dm:scaled-vector force dt))
               (p2dm:clamp-vector velocity +max-boid-speed+)))
        (p2dm:add-to-vector position (p2dm:scaled-vector velocity dt))
        (let ((desired (apply-behaviours boid *world*)))
          (ddv position (p2dm:scaled-vector desired 10.0) :desired)
          (apply-force (steering velocity desired))))))
  
  
  
negative.code: 
  (defparameter +sheep-size+ 2.0)
  (defparameter +sheep-grazing-cooldown-time+ 2.0)
  (defparameter +sheep-eating-speed+ 1.0)
  
  (defparameter +food-color+ (p2dg:make-color-4 0 0.4 0 1))
  (defparameter +food-size+ 2.0)
  