// method to handle keyboard events void keyPressed() { if(keyCode == LEFT) // change image activeImg--; if(keyCode == RIGHT) // change image activeImg++; if(activeImg >= img.length) activeImg = 0; if(activeImg < 0) activeImg = img.length-1; if(key == 'a') // artificial intelligence if(ai == true) ai = false; else ai = true; if(key == 'u') // outline if(outline) outline = false; else outline = true; if(key == 'l') // loupe if(loupe) loupe = false; else loupe = true; if(key == 'm') // magnet if(come) come = false; else come = true; if(key == 's') // statistics if(showStatistic) showStatistic = false; else showStatistic = true; if(key == 'f') // reproduction if(reproduction) reproduction = false; else reproduction = true; if(key == 'n') // reaload images loadImages(); if(key == 'k') // kill all killAll(); menu(); } // method to handle mouseklicks void mousePressed() { if(mouseX<500) // add new worm { population.add(new worm(area.width * mouseY + mouseX, img[activeImg].get(mouseX, mouseY))); // add new worm to population lengthSlider.active = false; } if(mouseX > speedSlider.left && mouseX < speedSlider.right && mouseY > speedSlider.top && mouseY < speedSlider.bottom) // speedslighter event { speedSlider.drag(mouseX); speedSlider.dragged = true; speed = speedSlider.value; } if(mouseX > lengthSlider.left && mouseX < lengthSlider.right && mouseY > lengthSlider.top && mouseY < lengthSlider.bottom && lengthSlider.active) // lengthslider event { lengthSlider.drag(mouseX); lengthSlider.dragged = true; maxWormLength = lengthSlider.value; } speed = ceil(sqrt((float)((float)maxWormLength / 1000) * speedSlider.value)); // calculate speed if(mouseX > img[activeImg].width+29 && mouseX < img[activeImg].width+29+39*5 && mouseY > 57 && mouseY < 57 + 34) { // Image Navigation event activeImg = floor((mouseX-(img[activeImg].width+29))/39); } menu(); } void mouseDragged() { if(speedSlider.dragged) speedSlider.drag(mouseX); if(lengthSlider.dragged && lengthSlider.active) lengthSlider.drag(mouseX); speed = ceil(sqrt((float)((float)maxWormLength / 1000) * speedSlider.value)); maxWormLength = lengthSlider.value; } void mouseReleased() { speedSlider.dragged = false; lengthSlider.dragged = false; }