Behaviors change the state of the quelea.
For instance, the Bounce Contain Behavior sets the quelea’s velocity to be the reflection of its current velocity about the normal of the border of its environment. This differs from the Contain Force because the force calcuate a vector and give it to the quelea to choose how to interpret it, ultimately adding the result to the quelea’s future acceleration. So, a behavior directly sets a field in the quelea’s state whereas a force indirectly updates the quelea’s position.