xxxxxxxxxx
75
let movers = [];
let slider;
let sliderValue = 0;
let attractor;
let moth_img;
function preload() {
moth_img = loadImage('moth.png');
}
function setup() {
createCanvas(500, 500);
// Create a slider for attractor mass + brightness
slider = createSlider(0, 255, 100);
slider.position(20, 20);
slider.style('width', '200px');
// Initialize attractor first
attractor = new Attractor();
// Then create movers
for (let i = 0; i < 10; i++) {
movers[i] = new Mover(random(width), random(height), random(0.5, 3));
}
}
function draw() {
background(255);
// Get the current value of the slider
sliderValue = slider.value();
// Update attractor mass based on slider
attractor.updateMass(sliderValue);
// Display the current value
fill(0);
textSize(24);
text('Light Intensity: ' + sliderValue, 20, 60);
attractor.show();
for (let i = 0; i < movers.length; i++) {
let force = attractor.attract(movers[i]);
movers[i].applyForce(force);
movers[i].update();
movers[i].show();
}
}
// Add guards to all mouse interaction functions
function mouseMoved() {
if (attractor) {
attractor.handleHover(mouseX, mouseY);
}
}
function mousePressed() {
if (attractor) {
attractor.handlePress(mouseX, mouseY);
}
}
function mouseDragged() {
if (attractor) {
attractor.handleHover(mouseX, mouseY);
attractor.handleDrag(mouseX, mouseY);
}
}
function mouseReleased() {
if (attractor) {
attractor.stopDragging();
}
}