Willkommen auf unserem Seminar-Blog

Immer auf dem aktuellen Stand bleiben

Dieser Seminar-Blog befindet sich noch im Aufbau und wird in den kommenden Tagen entsprechend verfeinert.

Member Login

Lost your password?

Registration is closed

Sorry, you are not allowed to register by yourself on this site!

You must either be invited by one of our team member or request an invitation by email at viad.info {at} zhdk {dot} ch.

smilies – Bedingungen und gedrückte Tasten

21. September 2012

Gegeben war ein Standard Smiley, welcher durch drücken einer Taste seinen Gemütszustand ändern sollte Default Sad (Key1) Drunk (Key2) Angry (Key3) Old (Key4) Astound (Key5) Sleepy (Key6) Horny (Key7) Panic (Key8) Default Smiley wird immer angezeigt wenn keine Taste gedrückt wird, ansonsten zeigt es durch drücken der Tasten 1-8 den entsprechenden Gemütszustand an. Die Programmierung der Funktionen für die reine Anzeige der Smilies war nicht sonderlich schwer. Das Zeichnen der Formen und Figuren hat dagegen mehr Probleme gemacht, da jegliche Striche im Koordinaten System erstellt werden müssen.
  • void setup: Setzt die wichtigsten Einstellungen und Parameter für das Programm überhaupt fest. (z.B. Fenstergrösse)
  • void draw: Diese Funktion wird in einer Schlaufe dauern durchgeführt. Dadurch lassen sich unter anderem auch animierte Darstellungen im Processing erstellen.
  • void keyPressed: Führt einen beliebigen Befehl aus wenn die gewünschte Taste gedrückt wird.
  • void keyReleased: Führt einen default Befehl aus wenn die Taste losgelassen wird.
  • if-Schleife: Um gewissen Aktionen automatisieren zu können gibt es auch die Möglichkeit Bedingungen zu setzen

CODE

int SMILEY_DEFAULT = 1;
int SMILEY_SAD = 2;
int SMILEY_DRUNK = 3;
int SMILEY_ANGRY = 4;
int SMILEY_OLD = 5;
int SMILEY_ASTOUND = 6;
int SMILEY_SLEEPY = 7;
int SMILEY_HORNY = 8;
int SMILEY_PANIC = 9;

int smileyType = SMILEY_DEFAULT;

void setup()
{
 size(400, 400); // def. fenstergroesse

smooth(); // aktiviere antialiasing
 strokeWeight(5); // linienbreite
}

void draw()
{
 background(255); // def. hintergrundfarbe

// teste ob der mauszeiger innerhalb des smiley ist
// if (mouseX > (width * .5 - 90) && mouseX < (width * .5 + 90) &&
// mouseY > (height * .5 - 90) && mouseY < (height * .5 + 90))
// // die mouse ist im smiley, smiley mag das nicht
// smileyType = SMILEY_SAD;
// else

// smileyType = SMILEY_DEFAULT;

 pushMatrix();
 translate(width * .5, width * .5);
 smiley(smileyType); // funktions aufruf
 popMatrix();
}

// funktion
void smiley(int smileyType)
{
 noFill();
 ellipse(0, 0, 180, 180); // kopf

fill(0);
 if (smileyType == SMILEY_SAD)
 {

 ellipse(0 - 30, 0 - 30, 20, 20); // linkes augen
 ellipse(0 + 30, 0 - 30, 20, 20); // rechtes augen

strokeWeight(15);

beginShape();
 stroke(255);
 vertex(45,-35);
 vertex(25,-45);
 endShape();

 beginShape();
 stroke(255);
 vertex(-45,-35);
 vertex(-25,-45);
 endShape();

 stroke(0);
 strokeWeight(5);

 }
 else if(smileyType == SMILEY_DRUNK)
 {
 ellipse(0 - 20, 0 - 30, 20, 20); // linkes augen
 ellipse(0 + 20, 0 - 28, 15, 15); // rechtes augen

 beginShape();
 vertex(35,-35);
 vertex(15,-45);
 endShape();

 beginShape();
 vertex(-35,-35);
 vertex(-15,-45);
 endShape();

 }
 else if(smileyType == SMILEY_ANGRY)
 {
 ellipse(0 - 30, 0 - 30, 15, 15); // linkes augen
 ellipse(0 + 30, 0 - 30, 15, 15); // rechtes augen

 strokeWeight(15);
 beginShape();
 vertex(-50,-50); // AUgenbraue links
 vertex(-20,-40); // AUgenbraue rechts
 endShape();

 beginShape();
 vertex(50,-50); // AUgenbraue links
 vertex(20,-40); // AUgenbraue rechts
 endShape();

 strokeWeight(5);

}
 else if(smileyType == SMILEY_OLD)
 {

fill(255);
 strokeWeight(1);
 ellipse(0 - 30, 0 - 13, 20, 20);
 ellipse(0 + 30, 0 - 13, 20, 20);
 strokeWeight(5);
 fill(0);

 strokeWeight(1);

 beginShape();
 vertex(-20,-13); // AUgenbraue links
 vertex(20,-13); // AUgenbraue links
 endShape();

 beginShape();
 vertex(-87,-25); // AUgenbraue links
 vertex(-40,-15); // AUgenbraue links
 endShape();

 beginShape();
 vertex(87,-25); // AUgenbraue links
 vertex(40,-15); // AUgenbraue links
 endShape();
 strokeWeight(5);

 ellipse(0 - 30, 0 - 13, 3, 3); // linkes augen
 ellipse(0 + 30, 0 - 13, 3, 3); // rechtes augen
 }
 else if(smileyType == SMILEY_ASTOUND)
 {

fill(255);
 strokeWeight(2);
 ellipse(0 - 30, 0 - 30, 50, 50);
 ellipse(0 + 30, 0 - 30, 50, 50);
 strokeWeight(5);
 fill(0);

 ellipse(0 - 30, 0 - 17, 3, 3); // linkes augen
 ellipse(0 + 30, 0 - 17, 3, 3); // rechtes augen

 }
 else if(smileyType == SMILEY_SLEEPY)
 {
 fill(255);
 arc(-30, -30, 30, 30, radians(40), radians(180-40)); // mund
 arc(30, -30, 30, 30, radians(40), radians(180-40)); // mund
 fill(0);
 }
 else if(smileyType == SMILEY_HORNY)
 {

 fill(255);
 strokeWeight(2);
 ellipse(0 - 30, 0 - 30, 50, 50);
 ellipse(0 + 30, 0 - 30, 50, 50);
 strokeWeight(5);
 fill(0);

 ellipse(0 - 30, 0 - 30, 5, 5); // linkes augen
 ellipse(0 + 30, 0 - 30, 5, 5); // rechtes augen
 }
 else if(smileyType == SMILEY_PANIC)
 {
 ellipse(0 - 30, 0 - 30, 42, 42); // linkes augen
 ellipse(0 + 30, 0 - 30, 42, 42); // rechtes augen
 }
 else
 {
 ellipse(0 - 30, 0 - 30, 20, 20); // linkes augen
 ellipse(0 + 30, 0 - 30, 20, 20); // rechtes augen
 }

noFill();
 if (smileyType == SMILEY_SAD)
 arc(0, 80, 100, 100, radians(180+40), radians(360-40)); // mund
 else if(smileyType == SMILEY_DRUNK)
 {
 beginShape();
 vertex(-35,40);
 vertex(-25,50); // AUgenbraue links
 vertex(-5,45); // AUgenbraue rechts
 vertex(10,50);
 vertex(30,40);
 vertex(40,33);
 endShape();
 }
 else if(smileyType == SMILEY_ANGRY)
 arc(0, 60, 100, 100, radians(180+40), radians(360-40)); // mund
 else if(smileyType == SMILEY_OLD)
 {

 arc(0, 30, 30, 30, radians(60), radians(180-60)); // mund

 }
 else if(smileyType == SMILEY_ASTOUND)
 ellipse(0, 0 + 40, 20, 20);
 else if(smileyType == SMILEY_SLEEPY)
 {
 fill(0);
 ellipse(0, 45, 10, 20);
 fill(255);
 }
 else if(smileyType == SMILEY_HORNY)
 {
 arc(0, 0, 100, 100, radians(40), radians(180-40)); // mund
 arc(25, 50, 15, 15, radians(-45), radians(165));
 }
 else if(smileyType == SMILEY_PANIC)
 {
 fill(255);
 ellipse(0, 0 + 45, 70, 70);
 }
 else
 arc(0, 0, 100, 100, radians(20), radians(180-20)); // mund
}

void keyPressed()
{
 if(key=='1')
 smileyType = SMILEY_SAD;
 else if(key == '2')
 smileyType = SMILEY_DRUNK;
 else if(key == '3')
 smileyType = SMILEY_ANGRY;
 else if(key == '4')
 smileyType = SMILEY_OLD;
 else if(key == '5')
 smileyType = SMILEY_ASTOUND;
 else if(key == '6')
 smileyType = SMILEY_SLEEPY;
 else if(key == '7')
 smileyType = SMILEY_HORNY;
 else if(key == '8')
 smileyType = SMILEY_PANIC;
 else
 smileyType = SMILEY_DEFAULT;
 }
void keyReleased() {
 smileyType = SMILEY_DEFAULT;
}