/* * KLASSE meinInterface * * darstellen der einzelnen knöpfe * abfrage interaktion maus/knöpfe * keyboard input abfrage * */ class meinInterface { color farbGraber = #FF0000; color farbDemolierer = #FF00FF; color farbPflanzer = #00FF00; color farbPfluecker = #FFFF00; color farbBlumen = #FFAA00; int buttonSize = 8; //groesse vom knopf int buttonOffset = buttonSize+8; //abstand der knöpfe untereinander int buttonStart = screen_y-12-bildRand-buttonSize; //position erster knopfe unten links int leftOffset = bildRand+12; //verschiebung von links int buttonNumber; boolean new_hit=false; InterfaceButton GraberButton = new InterfaceButton(); InterfaceButton DemoliererButton = new InterfaceButton(); InterfaceButton PflanzerButton = new InterfaceButton(); InterfaceButton PflueckerButton = new InterfaceButton(); InterfaceButton BlumenButton = new InterfaceButton(); meinInterface() { GraberButton = new InterfaceButton(4, buttonSize, farbGraber , leftOffset, buttonOffset, buttonStart, "es gibt viel zu tun"); DemoliererButton = new InterfaceButton(3, buttonSize, farbDemolierer , leftOffset, buttonOffset, buttonStart, "mir ist langweilig"); PflanzerButton = new InterfaceButton(2, buttonSize, farbPflanzer , leftOffset, buttonOffset, buttonStart, "ich liebe Blumen"); PflueckerButton = new InterfaceButton(1, buttonSize, farbPfluecker , leftOffset, buttonOffset, buttonStart, "ich habe sie zum fressen gern"); BlumenButton = new InterfaceButton(5, buttonSize, farbBlumen , leftOffset, buttonOffset, buttonStart, "flower power"); } // Methode - zeichnet die Knöpfe wenn das interface aktiviert ist . toggle mit [i] void drawInterface() { if(ifaceAktiv==true) { GraberButton.drawme(); DemoliererButton.drawme(); PflanzerButton.drawme(); PflueckerButton.drawme(); BlumenButton.drawme(); } fill(100); text(" [i] [n]", screen_x-72, 2*screen_y-20); keyAbfrage(); } // Methode - -------------------------------------- void keyAbfrage() { if(keyPressed && new_hit == true) { if(key =='i') { ifaceAktiv=!ifaceAktiv; } if(key =='n') { pflanzerListe.clear(); demoliererListe.clear(); pflueckerListe.clear(); graberListe.clear(); blumenListe.clear(); wegeListe.clear(); d3refresh=200; setup(); } } if(keyPressed) { //wurde taste losgelassen - neu gedrückt new_hit=false; }else{ new_hit=true; } } } class InterfaceButton { int buttonNumber; int buttonSize; color farbe; int leftOffset; int buttonOffset; int buttonStart; String info_text; boolean binAktiv=false; boolean new_hit=false; InterfaceButton() { } InterfaceButton(int n, int si, color f, int left, int off, int bstart, String s) { buttonNumber = n; buttonSize = si; farbe=f; leftOffset = left; buttonOffset = off; buttonStart = bstart; info_text = s; } // Methode - -------------------------------------- void drawme() { int knopfX = leftOffset; int knopfY = buttonStart-(buttonNumber-1)*buttonOffset; if (mousePressed) { if(new_hit==true && mouseX > knopfX-buttonSize && mouseX < knopfX+buttonSize && mouseY > knopfY-buttonSize && mouseY < knopfY+buttonSize) { new_hit=false; binAktiv = !binAktiv; //println(binAktiv?"bin aktiv":"bin inaktiv"); } } else{new_hit=true;} if(binAktiv==true) { fill(farbe); stroke(farbe); rect(knopfX , knopfY, buttonSize*1.2, buttonSize*1.2); } else{ fill(farbe); stroke(255); rect(knopfX , knopfY, buttonSize, buttonSize); } if(mouseX > knopfX-buttonSize && mouseX < knopfX+buttonSize && mouseY > knopfY-buttonSize && mouseY < knopfY+buttonSize) { fill(farbe,110); text(info_text, bildRand, screen_y-bildRand/2); } } boolean getState() { return binAktiv; } }