import ddf.minim.*;
Minim minim;
int n = 9; AudioPlayer[] players = new AudioPlayer[n]; int[][] locations = {
{95, 100, 20}, {115, 112, 20}, {126, 92, 20}, {193, 103, 20}, {230, 109, 20}, {271, 118, 20}, {330, 470, 20}, {297, 272, 20}, {182, 165, 20}, {238, 142, 20}, };
int activeLocation = -1; PImage img;
void setup() {
size(382,360); // init minim minim = new Minim(this); img = loadImage("Parkhoehle.png"); for (int i = 0; i < n; i++) { players[i] = minim.loadFile("Parkhoehle_" + (i+1) + ".wav"); } }
void draw() {
image(img, 0, 0); fill(255, 150); noStroke(); // set dummy value for the active location activeLocation = -1; for(int i = 0; i < locations.length; i ++) { // get location triple int[] loc = locations[i]; // assign variables int x = loc[0]; int y = loc[1]; int r = loc[2]; // check if we are at the i'th location if(atLocation(x, y, r)) { // set active loaction to the current location activeLocation = i; // hilight the location ellipse(x, y, 2*r, 2*r); } } } // check if the mouse is within radius r of location(x, y) boolean atLocation(int x, int y, int r) { return mouseX > (x - r) && mouseX < (x + r) && mouseY > (y - r) && mouseY < (y + r); } void mousePressed() {
// is the mouse hovering over one of the locations? if(activeLocation != -1) {
// pause all players for (int i = 0; i < n; i++) { players[i].pause(); }
// play the sound associated with the current location println("Sound number " + (activeLocation + 1)); players[activeLocation].rewind(); players[activeLocation].play(); } }
void keyPressed() { for (int i = 0; i < n; i++) { players[i].pause(); }
// get position of digit pressed ( '1' = 0, '2' = 1 ... '9' = 8 ) int i = (key - '1'); // check if we are in the valid range if (i >= 0 && i < n) {
// play the respective sample println("Sound number " + (i + 1)); players[i].rewind(); players[i].play(); } }