xxxxxxxxxx
99
let img;
let frame;
let walkers = [];
let layerCanvas;
let pacmanFinished = false;
let isThereImage = true;
function preload() {
// Load your image here
img = loadImage("assets/image.jpeg");
}
// pacman logic
let predatorPacman;
let regularPacmans = [];
let numRegularPacmans = 3;
function setup() {
translate(0, 0);
if (img === undefined) {
// in case there is no image
isThereImage = false;
img = createImage(500, 500);
img.loadPixels();
for (let i = 0; i < img.width; i++) {
for (let j = 0; j < img.height; j++) {
// abstracting color of each pixel
img.set(
i,
j,
color(noise(i) * random(255), noise(j) * random(255), random(0, 120))
);
}
}
img.updatePixels();
}
createCanvas(img.width, img.height);
walkers.push(new Walker(isThereImage));
//pacman logic
predatorPacman = new PredatorPacman();
for (let i = 0; i < numRegularPacmans; i++) {
regularPacmans.push(new RegularPacman());
}
frame = 0;
background(255);
}
function draw() {
for (let walker of walkers) {
if (pacmanFinished) {
walker.step();
walker.display();
}
}
// pacman logic
if (regularPacmans.length > 0) {
predatorPacman.move();
predatorPacman.display();
for (let i = regularPacmans.length - 1; i >= 0; i--) {
let regularPacman = regularPacmans[i];
regularPacman.move();
regularPacman.display();
// Check if the predator Pac-Man eats a regular Pac-Man
let d = dist(
predatorPacman.x,
predatorPacman.y,
regularPacman.x,
regularPacman.y
);
if (d < predatorPacman.size / 2 + regularPacman.size / 2) {
regularPacmans.splice(i, 1); // Remove eaten regular Pac-Man
}
}
if (frame % 2 == 0 || regularPacmans.length == 0) {
background(255);
}
} else {
// if Pac-Man game finished, draw the generative art
pacmanFinished = true;
if (walkers.length < 3500) {
walkers.push(new Walker(isThereImage));
}
}
if (keyIsDown(ENTER)) {
// hold on generative art
noLoop();
}
frame++;
}