For this assignment I tried my best to wrap my head around arrays and classes and how to go about them. I wanted to also add an interactive element where the circles respond to disturbance of the mouse – proud of that
There wasn’t really a specific idea, It was trial and error until I found what works for this assignment which is that. However, I wasn’t successful with randomizing the floating orange colors.
let oranges = [];
function setup() {
createCanvas(600, 600);
rectMode(CENTER);
for (let i = 0; i < 10; i++) {
let x = random(width);
let y = random(height);
let diameter = random(30, 50);
let velocity = random(1, 5);
let orangeColor = color(random(255), random(255), 0);
let orange = new Orange(x, y, diameter, orangeColor, velocity);
oranges.push(orange);
}
}
function draw() {
background(174, 198, 207);
for (let orange of oranges) {
orange.update();
orange.display();
if (orange.isMouseOver()) {
orange.disturb();
}
}
}
class Orange {
constructor(x, y, diameter, color, velocity) {
this.x = x;
this.y = y;
this.diameter = diameter;
this.color = color;
this.velocity = velocity;
this.originalX = x;
this.originalY = y;
}
update() {
this.x += this.velocity;
if (this.x > width + this.diameter / 2) {
this.x = -this.diameter / 2;
this.y = random(height);
}
}
display() {
fill(this.color);
ellipse(this.x, this.y, this.diameter);
}
isMouseOver() {
let d = dist(this.x, this.y, mouseX, mouseY);
return d < this.diameter / 2;
}
disturb() {
this.x += random(-5, 5);
this.y += random(-5, 5);
}
}
let oranges = [];
function setup() {
createCanvas(600, 600);
rectMode(CENTER);
for (let i = 0; i < 10; i++) {
let x = random(width);
let y = random(height);
let diameter = random(30, 50);
let velocity = random(1, 5);
let orangeColor = color(random(255), random(255), 0);
let orange = new Orange(x, y, diameter, orangeColor, velocity);
oranges.push(orange);
}
}
function draw() {
background(174, 198, 207);
for (let orange of oranges) {
orange.update();
orange.display();
if (orange.isMouseOver()) {
orange.disturb();
}
}
}
class Orange {
constructor(x, y, diameter, color, velocity) {
this.x = x;
this.y = y;
this.diameter = diameter;
this.color = color;
this.velocity = velocity;
this.originalX = x;
this.originalY = y;
}
update() {
this.x += this.velocity;
if (this.x > width + this.diameter / 2) {
this.x = -this.diameter / 2;
this.y = random(height);
}
}
display() {
fill(this.color);
ellipse(this.x, this.y, this.diameter);
}
isMouseOver() {
let d = dist(this.x, this.y, mouseX, mouseY);
return d < this.diameter / 2;
}
disturb() {
this.x += random(-5, 5);
this.y += random(-5, 5);
}
}
let oranges = []; function setup() { createCanvas(600, 600); rectMode(CENTER); for (let i = 0; i < 10; i++) { let x = random(width); let y = random(height); let diameter = random(30, 50); let velocity = random(1, 5); let orangeColor = color(random(255), random(255), 0); let orange = new Orange(x, y, diameter, orangeColor, velocity); oranges.push(orange); } } function draw() { background(174, 198, 207); for (let orange of oranges) { orange.update(); orange.display(); if (orange.isMouseOver()) { orange.disturb(); } } } class Orange { constructor(x, y, diameter, color, velocity) { this.x = x; this.y = y; this.diameter = diameter; this.color = color; this.velocity = velocity; this.originalX = x; this.originalY = y; } update() { this.x += this.velocity; if (this.x > width + this.diameter / 2) { this.x = -this.diameter / 2; this.y = random(height); } } display() { fill(this.color); ellipse(this.x, this.y, this.diameter); } isMouseOver() { let d = dist(this.x, this.y, mouseX, mouseY); return d < this.diameter / 2; } disturb() { this.x += random(-5, 5); this.y += random(-5, 5); } }