xxxxxxxxxx
77
let lead_car, follow_car;
let space;
let map = [];
function preload() {
map[0] = loadImage("assets/world0.png");
map[1] = loadImage("assets/world1.png");
map[2] = loadImage("assets/world2.png");
map[3] = loadImage("assets/world3.png");
map[4] = loadImage("assets/world4.png");
map[5] = loadImage("assets/world5.png");
map[6] = loadImage("assets/world6.png");
map[7] = loadImage("assets/world7.png");
map[8] = loadImage("assets/world8.png");
}
function setup() {
let width = windowWidth;
let height = windowHeight;
let margin = 20;
middle = createVector(width/2, height/2);
// Create the space including margins for
// the edges of space
space = new Space( width + 2*margin,
height + 2*margin );
// Create the canvas and conceal the margins
let can = createCanvas( width + margin,
height + margin );
can.position(-margin, -margin);
lead_car = new Vehicle( width/2, height/2, 1.5 );
lead_car.color = "green";
lead_car.maxAcc = 0.2;
lead_car.maxVel = 5;
follow_car = new Vehicle(0, 0, 1.0 );
follow_car.color = "red";
follow_car.maxAcc = 0.25;
follow_car.maxVel = 5;
}
function draw() {
background(0, 0, 50);
lead_car.wander();
// Pursue the lead car for half the time
if(frameCount % 600 > 299) {
follow_car.applyForce( follow_car.pursue(lead_car) );
}
// Keep the cars in the defined space
let leader_crossed_edge = space.wrap(lead_car);
let follower_crossed_edge = space.wrap(follow_car);
// Update each car location in space.
lead_car.update();
follow_car.update();
// Print which sector the lead car is in
// The cars location was chosen by space.show()
space.print_location();
// Show only the sector where the lead car is at
// relative to all other cars
space.show(lead_car);
// Draw the lead car with a trail.
lead_car.show(true, leader_crossed_edge);
follow_car.show(false, follower_crossed_edge);
}