eine Vorgeschichte: DBN
Paper 100
Pen 0
Line 10 70 80 30und eine Ästhetik.
Zeilenweise Befehle erteilen...
point(30,35); line(10,70,80,30); ellipse(60,65,20,20);... bei tückischer Syntax (Worte zusammen, viele Leerzeichen oder Zeilenumbrühe entsprechen einem Leerzeichen) ...
point(30,35);
point (30,35);
point ( 30, 35);
point ( 30, 35);(nicht:)
poi nt(30,35);...und Reihenfolge.
line(10,70,80,30); ellipse(60,40,20,20);
ellipse(60,40,20,20); line(10,70,80,30);
// kurze Kommentare /* lange ... Kommentare */
Deklarieren, initialisieren, benutzen.
int px; px = 30; int py = 35; point(px,py); ellipse(px+30,py+30,20,20);Mit dem Ergebnis einer Funktion füllen.
float px; px = random(100); int py = random(100); ellipse(px+30,py+30,20,20);
Fragen stellen
if (Ja/Nein-Frage)Es folgt eine Sequenz mit Anweisungen. Damit kenntlich ist, dass die Sequenz zur Frage gehört, wird sie in {} eingeschlossen.
if (Ja/Nein-Frage)
{
Anweisung1;
Anweisung2;
Anweisung3;
}
Zum Beispiel
float zahl = random(100);
if (zahl < 50)
{
point(30,35);
line(10,70,80,30);
ellipse(60,65,20,20);
}
Tipp: STRG+T oder CMD+T
Wenn die Frage mit ja beantwortet wird, führe den ersten Block aus, ansonsten den zweiten.
if (Ja/Nein-Frage) { Anweisung1; Anweisung2; Anweisung3; } else { AndereAnweisung1; AndereAnweisung2; AndereAnweisung3; }Zum Beispiel
float zahl = random(100); if (zahl < 50) { ellipse(60,65,20,20); } else { rect(60,65,20,20); }
Wenn die Frage mit ja beantwortet wird, führe den ersten Block aus, ansonsten den zweiten, aber nur, wenn eine weitere Frage mit ja beantwortet wird. Usw.
if (Ja/Nein-Frage) { Anweisung1; Anweisung2; Anweisung3; } else if (neue Frage) { AndereAnweisung1; AndereAnweisung2; AndereAnweisung3; }Zum Beispiel
float zahl = random(100); if (zahl < 30) { ellipse(60,65,20,20); } else if (zahl < 60) { rect(60,65,20,20); }
Statt:
ellipse(5,5,5,5); ellipse(15,5,5,5); ellipse(25,5,5,5); ellipse(35,5,5,5); ellipse(45,5,5,5); ellipse(55,5,5,5); // usw...eine Sequenz, die wiederholt wird:
for (Variable zum Zählen; Frage wann Ende; Art des Zählens)
{
Anweisung1;
Anweisung2;
Anweisung3;
}
for (int i=0; i < 100; i = i+10)
{
ellipse(i+5,5,5,5);
}
Zwei Blöcke. Und die Zeilen davor.
Zunächst werden Variablen festgelegt (deklariert und eventuell initialisiert).
Im setup werden Einstellungen vorgenommen.
Im draw-Loop wird gezeichnet (oder alles andere gemacht, was sich wiederholt).
float y = 50; void setup() { frameRate(25); } void draw() { point(50,y); }Durch das wiederholte Zeichnen wird Bewegung möglich.
float y = 50; void setup() { frameRate(25); background(255); } void draw() { y = random(0,100); point(50,y); }
float y = 50; void setup() { frameRate(25); } void draw() { background(255); y = random(0,100); point(50,y); }Interaktion entsteht am einfachsten durch das Nutzen fertiger Variablen - z.B. mouseX und mouseY.
float x, y; void setup() { frameRate(25); } void draw() { background(255); x = mouseX; y = mouseY; point(x,y); }
float x, y; void setup() { frameRate(25); } void draw() { background(255); x = mouseX; y = mouseY; line(0,y,100,y); line(x,0,x,100); }
void setup() { pinMode(led1, OUTPUT); } void loop() { digitalWrite(led1, HIGH); delay(500); digitalWrite(led1, LOW); delay(500); }