xxxxxxxxxx
139
var vehicles = [];
var font;
function preload() {
// font = loadFont("Inter-SemiBold.otf");
font = loadFont("Neue-Bold.otf");
// font = textFont("Comic Sans MS");
}
function setup() {
createCanvas(800, 800);
fill(255, 104, 204);
var points = font.textToPoints('Welcome,', 40, 300, 100,{
sampleFactor: 0.2,
simplifyThreshold: 0
});
var points2 = font.textToPoints('this is my cc portfolio,', 40, 440, 50,{
sampleFactor: 0.25,
simplifyThreshold: 0
});
var points3 = font.textToPoints('click on projects on the left.', 40, 580, 50,{
sampleFactor: 0.25,
simplifyThreshold: 0
});
for (var i=0; i < points.length; i++){
var pt = points[i];
var vehicle = new Vehicle(pt.x,pt.y);
vehicles.push(vehicle);
}
for (var j=0; j < points2.length; j++){
var pt2 = points2[j];
var vehicle2 = new Vehicle(pt2.x,pt2.y);
vehicles.push(vehicle2);
}
for (var p=0; p < points3.length; p++){
var pt3 = points3[p];
var vehicle3 = new Vehicle(pt3.x,pt3.y);
vehicles.push(vehicle3);
}
}
function draw() {
background(255);
// textFont(font);
// textSize(140);
// fill(30);
// text('Hello,',40,140);
for (var i=0; i < vehicles.length; i++){
var v = vehicles[i];
v.behaviors();
v.update();
v.show();
}
}
function Vehicle(x,y){
this.pos = createVector(random(width),random(height));
this.target = createVector(x,y);
this.vel = p5.Vector.random2D();
this.acc = createVector();
this.r = 2;
this.maxspeed = 10;
this.maxforce = 0.5;
this.h = 100;
this.sat = 40;
this.light = 10;
this.opa = 160;
this.behaviors = function(){
var arrive = this.arrive(this.target);
var mouse = createVector(mouseX, mouseY);
var flee = this.flee(mouse);
arrive.mult(1);
flee.mult(5);
this.applyForce(arrive);
this.applyForce(flee);
}
this.applyForce = function(f){
this.acc.add(f);
}
this.update = function(){
this.pos.add(this.vel);
this.vel.add(this.acc);
this.opa = floor(map(this.vel.x,0.1,this.maxspeed-5,160,255));
this.acc.mult(0);
}
this.show = function(){
push();
var c = color(147,98,44);
stroke(c,this.opa);
strokeWeight(this.r);
point(this.pos.x,this.pos.y);
strokeWeight(0.5)
stroke(0,100);
pop();
}
this.arrive = function(target){
var desired = p5.Vector.sub(target, this.pos);
var d = desired.mag();
var speed = this.maxspeed;
if ( d < 100){
speed = map(d, 0, 100,0, this.maxspeed);
}
desired.setMag(speed);
var steer = p5.Vector.sub(desired, this.vel);
steer.limit(this.maxforce);
return steer;
}
this.flee = function(target){
var desired = p5.Vector.sub(target, this.pos);
var d = desired.mag();
if (d < 50){
desired.setMag(this.maxspeed);
desired.mult(-1);
var steer = p5.Vector.sub(desired, this.vel);
steer.limit(this.maxforce);
return steer;
} else {
return createVector(0,0);
}
}
}