xxxxxxxxxx
55
// More Steering Behaviors! (Cat and Mouse)
// The Nature of Code
// The Coding Train / Daniel Shiffman
// https://youtu.be/Q4MU7pkDYmQ
// https://thecodingtrain.com/learning/nature-of-code/5.3-flee-pursue-evade.html
// Flee: https://editor.p5js.org/codingtrain/sketches/v-VoQtETO
// Pursue: https://editor.p5js.org/codingtrain/sketches/Lx3PJMq4m
// Evade: https://editor.p5js.org/codingtrain/sketches/X3ph02Byx
// Pursue Bouncing Ball: https://editor.p5js.org/codingtrain/sketches/itlyDq3ZB
// Pursue Wander: https://editor.p5js.org/codingtrain/sketches/EEnmY04lt
// Pursue Slider Prediction: https://editor.p5js.org/codingtrain/sketches/l7MgPpTUB
let cat, mouse;
function setup() {
createCanvas(windowWidth, windowHeight);
cat = new Vehicle(100, 100)
cat.color = "red"
cat.r = 20
cat.maxForce = 0.2
cat.maxSpeed = 6
mouse = new Vehicle(400, 400)
mouse.color = "yellow"
mouse.r = 10
mouse.maxForce = 0.1
mouse.maxSpeed = 6
}
function draw() {
background(0);
if(frameCount % 300 < 200) {
// Cat hungry! Cat pursues mouse
cat.applyForce( cat.pursue(mouse) )
// Mouse evades cat
mouse.applyForce( mouse.evade(cat) )
}
else {
// Cat tired! Cat and mouse slow down
cat.applyForce( cat.vel.copy().mult(-0.01) )
mouse.applyForce( mouse.vel.copy().mult(-0.01) )
}
cat.update()
cat.edges()
cat.show(true)
mouse.edges()
mouse.show(true)
mouse.update()
}