starting from the interactive agents in the schnellebuntebilder tutorial, I want to implement the functionality that agents check if they collide with another agent, and then change velocity and decrease their lightness.
am I right to implement that funktion in the agent itself?
If I let it check against all agent positions, the agent will always “hit itself”, so I have to filter out its own position. foreach with keep would be nice, but since the pads work as framedelay the position if always a little off.
valuewithinRange takes no vector2, or I could use rectContainsPoint, or If > AND < than agent position ± threshold.
if you want to do hit detection of each agent with all others, it’s better to make a third patch CollisionManager that has knowledge about the whole ‘agent world’. it would get all agents and can manage them accordingly. the agent can still have a member operation CollideWithOtherAgent that has inputs for position/size of the other agent and specific functionality about behavior. you can use this member operation in the CollisionManager.