/*
* 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;
}
}