Concept
This project is titled Hungry Ants. It represents the collaborative quality that ants exhibit in nature, especially when there’s food around. It illustrates the teamwork ants undergo towards the common goal of satiability! On the mouse cursor, there’s a yellow circle which represents the targeted piece of food (a block of cheese, perhaps). A group of ants appear as soon as the program is run and they all rush towards the food. The user is free to move the cursor/food around which the ants would follow. The army of ants will keep moving until they reach their target, after which they’ll stop to enjoy their meal. Click here for the inspiration behind this project.
A highlight of some code that you’re particularly proud of
update() { let food = createVector(mouseX, mouseY); let foodDirection = p5.Vector.sub(food, this.position); let distanceToFood = foodDirection.mag(); // if the ants reach/are close to the food, they stop if (distanceToFood < 18) { this.velocity.x=0; this.velocity.y=0; this.acceleration.x=0; this.acceleration.y=0; } //if not, they keep following the food/mouse else { foodDirection.normalize(); foodDirection.mult(0.01); this.acceleration = foodDirection; this.velocity.add(this.acceleration); this.velocity.limit(1.5); this.position.add(this.velocity); } }
This is the update method of the Ant class. I’m particularly proud of the distanceToFood calculation and the conditional statement following it to cause the ants to stop once they reach the food.
Embedded sketch
Link to Sketch: https://editor.p5js.org/ahm9979/sketches/sQgG7I0Ir
Reflection and ideas for future work or improvements
– It would’ve been cool to have the piece of food to shrink the more time the ants spend on it. Then, another piece of food would regenerate and the process would repeat
– It was very convenient discovering the arrays method of creating a group of objects. It would’ve been time-consuming if I had to create each ant manually as a separate object of the Ant class.
– I don’t like how clumped up the ants look once they stop for the food. Even after the food moves again, the ants move in their clump to follow it. It would look better if they separated again without having the run the program from the beginning.