Frage von DennisZero, 16

Processing Unterschiede?

Hey! Ich hätte folgende Fragen zum Programm "Processing" und zwar : 1. Wann ruft man die Methoden setup und draw auf? 2.Wie animiert man Objekte die in unterschiedlicher Richtung das Bild durchqueren und dann am Rand abprallen? Danke im Voraus.

Antwort
von regex9, 3

Die Funktion setup wird zur Initialisierung des Screens genutzt und draw zum Zeichnen. Während setup nur einmal aufgerufen wird (zu Programmstart), läuft draw in einer Schleife. Die jeweiligen Aufrufe übernimmt allerdings Processing. Du selbst musst nur die Funktionskörper definieren.

Verändere pro draw-Call einfach die Position des Objekts:

void draw()
{
background(255, 204, 0);
x += direction; // direction = 1
ellipse(x, y, 10, 10)
}

Pro Durchlauf von draw wird durch Setzen der Hintergrundfarbe der Screen neu überzeichnet und die Variablen für x und y werden hochgezählt (in diesem Fall nur x). So wird die Ellipse jedesmal etwas weiter rechts gezeichnet.

Wenn der Kreis am Rand abprallen soll, dann muss pro draw die Position mit der Breite/Höhe des Screens verglichen werden (if-Anweisung). Die globalen Variablen width und height geben Auskunft über die Ausmaße des Screens (die mit size in der setup-Funktion zuvor festgelegt werden konnte). Ist der Rand erreicht, negiere einfach den Wert von direction. Ist er oben bspw. -1, bewegt sich der Kreis wieder nach links.

Kommentar von DennisZero ,

Danke für die Antwort, aber was würdest du bei dem hier hinzufügen, damit es vom Rand abprallt :

int x = 0;

void setup()
{
size(500, 500);
}
void draw(){
background(0);
ellipse(x,x,87,54);
ellipse(65,x,50,50);
rect(x,50,50,50);
x++;
}
Kommentar von regex9 ,

Es gilt das gleiche Prinzip wie oben. Rand mit x-Koordinate vergleichen, und gegebenenfalls negieren.

direction *= ((x == width || x == 0) ? -1 : 1)
x += direction;

Hilfe zu Ausdrücken wie if-else findest du in der Dokumentation von Processing: https://processing.org/reference/ - mache dich mit dieser vertraut.

Keine passende Antwort gefunden?

Fragen Sie die Community