Lernpfad:Einführung in Processing/12: Unterschied zwischen den Versionen

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 7: Zeile 7:
{{Kasten|
{{Kasten|
Bei Raindrops fallen aus dem "Himmel" einzelne "Regentropfen" in Richtung "Erde". Auf der Erde versucht der Spieler die Tropfen mit seinem "Eimer" zu fangen. Für jeden Tropfen gibt es Punkte, bis zu viele Tropfen auf den Boden gefallen sind.}}
Bei Raindrops fallen aus dem "Himmel" einzelne "Regentropfen" in Richtung "Erde". Auf der Erde versucht der Spieler die Tropfen mit seinem "Eimer" zu fangen. Für jeden Tropfen gibt es Punkte, bis zu viele Tropfen auf den Boden gefallen sind.}}
{{Hinweis|
In deinem Projekt müssen keine Regentropfen in einen Eimer fallen. Es können auch Äpfel in einen Korb, Kühe in einen Stall oder Shuttles in das Dock der NCC-1701-D.}}


{{Tldr:Start|Was du in diesem Schritt lernst|Icon=Icon Chalk board.png}}
{{Tldr:Start|Was du in diesem Schritt lernst|Icon=Icon Chalk board.png}}
Zeile 14: Zeile 17:
{{Tldr:End}}
{{Tldr:End}}


Ein Projekt dieser Art zu entwickeln erfordert einiges an Planung. Du solltest dir erst Teilprobleme überlegen, die du lösen musst und zum finalen Projekt zusammensetzen kannst. ''Implementiere jedes Teilproblem als eine eigene Methode.''
Ein Projekt dieser Art zu entwickeln erfordert einiges an Planung. Du solltest dir erst ''Teilprobleme'' überlegen, die du lösen musst und zum finalen Projekt zusammensetzen kannst. '''Implementiere jedes Teilproblem als eine eigene Methode.'''


Du kannst jederzeit im Lernpfad zurückgehen, um etwas nachzuschlagen.  
Du kannst jederzeit im Lernpfad zurückgehen, um etwas nachzuschlagen.  


{{Kasten|
{{Kasten|
Wenn du dich schon sicher fühlst im Umgang mit den bisherigen Programmierkonzepten, dann kannst das vorgeschlagene Miniprojekt gerne variieren. Nimm dir aber nicht zu viel vor! Besprich deine Ideen am besten vorher mit deiner Lehrperson}}
Wenn du dich schon sicher fühlst im Umgang mit den bisherigen Programmierkonzepten, dann kannst das vorgeschlagene Miniprojekt gerne variieren. Nimm dir aber nicht zu viel vor! Besprich deine Ideen am besten vorher mit deiner Lehrperson.|Farbe={{Farbe:Info}}}}


== Das Projekt strukturieren ==
== Das Projekt strukturieren ==


Notiere dir zinächst f
{{Aufgabe:Start}}
Überlege dir zunächst genau, aus welchen Teilen das Programm besteht. Möchtest du einen Hintergrund zeichnen? Dann benötigst du eine Methode <code>void zeichneHintergrund()</code>. Sicherlich brauchst du eine Methode <code>void zeichneRegentropfen( double x, double y )</code>, die einen Regentropfen an die Position (x|y) zeichnet.
 
Notiere dir weitere Methoden, die implementiert werden müssen.
{{Aufgabe:End}}
 
== Bilder benutzen ==
 
Du kannst in Processing leicht Bilder einfügen und in deinen Programmen benutzen. Dazu benötigst du die Befehle {{Processing Ref|loadImage()}}, um die Bilddatei zu laden und {{Processing Ref|image()}, um das Bild auf die Zeichenfläche zu zeichnen. Um ein Bild in einer ''Variablen'' zu speichern wird der ''Datentyp'' <code>PImage</code> verwendet.
 
Für unser Spiel benötigen wir zwei Bilder: Einen Regentropfen und einen Eimer.
<gallery>
Image:Droplet.png
Bild:Bucket_02.png
</gallery>
 
Lade die beiden Bilder runter (Rechtsklick -> Speicher unter..) und kopiere sie in deinen Projektordern (erstelle zunächst ein leeres Projekt und speichere es einmal ab). probiere dann folgenden Code aus:
 
<syntaxhighlight lang="java" line="1">
PImage tropfen;
PImage eimer;
 
void setup() {
  size(400, 600);
 
  eimer = loadImage("bucket_02.png");
  tropfen = loadImage("droplet.png");
}
 
void draw() {
  background(0,150,255);
 
  image(tropfen, random(50, 350), random(50, 300), 50, 50);
  image(tropfen, random(50, 350), random(50, 300), 50, 50);
  image(tropfen, random(50, 350), random(50, 450), 50, 50);
 
  image(eimer, mouseX, 530, 50, 50);
}
</syntaxhighlight>


<!--
{{Zusatzaufgabe:Start}}
{{Zusatzaufgabe:Start}}
Tasten benutzen
Tasten benutzen
{{Zusatzaufgabe:End}}
{{Zusatzaufgabe:End}}
-->

Version vom 10. Dezember 2021, 00:58 Uhr

Wir haben schon eine Menge der grundlegenden Programmierkonzepte erarbeitet. Nun wollen wir alles in einem kleinen Miniprojekt zusammenbringen: <colorize size="0">Raindrops</colorize> (Regentropfen).

Bei Raindrops fallen aus dem "Himmel" einzelne "Regentropfen" in Richtung "Erde". Auf der Erde versucht der Spieler die Tropfen mit seinem "Eimer" zu fangen. Für jeden Tropfen gibt es Punkte, bis zu viele Tropfen auf den Boden gefallen sind.

Icon Info.png

In deinem Projekt müssen keine Regentropfen in einen Eimer fallen. Es können auch Äpfel in einen Korb, Kühe in einen Stall oder Shuttles in das Dock der NCC-1701-D.

Icon Chalk board.png
Was du in diesem Schritt lernst
  • Ein komplexeres Projekt strukturiert entwickeln.
  • Bilder verwenden.
  • Kollisionen erkennen.


Ein Projekt dieser Art zu entwickeln erfordert einiges an Planung. Du solltest dir erst Teilprobleme überlegen, die du lösen musst und zum finalen Projekt zusammensetzen kannst. Implementiere jedes Teilproblem als eine eigene Methode.

Du kannst jederzeit im Lernpfad zurückgehen, um etwas nachzuschlagen.

Wenn du dich schon sicher fühlst im Umgang mit den bisherigen Programmierkonzepten, dann kannst das vorgeschlagene Miniprojekt gerne variieren. Nimm dir aber nicht zu viel vor! Besprich deine Ideen am besten vorher mit deiner Lehrperson.

Das Projekt strukturieren

Icon Heft.png
Arbeitsauftrag

Überlege dir zunächst genau, aus welchen Teilen das Programm besteht. Möchtest du einen Hintergrund zeichnen? Dann benötigst du eine Methode void zeichneHintergrund(). Sicherlich brauchst du eine Methode void zeichneRegentropfen( double x, double y ), die einen Regentropfen an die Position (x|y) zeichnet.

Notiere dir weitere Methoden, die implementiert werden müssen.


Bilder benutzen

Du kannst in Processing leicht Bilder einfügen und in deinen Programmen benutzen. Dazu benötigst du die Befehle loadImage(), um die Bilddatei zu laden und {{Processing Ref|image()}, um das Bild auf die Zeichenfläche zu zeichnen. Um ein Bild in einer Variablen zu speichern wird der Datentyp PImage verwendet.

Für unser Spiel benötigen wir zwei Bilder: Einen Regentropfen und einen Eimer.

Lade die beiden Bilder runter (Rechtsklick -> Speicher unter..) und kopiere sie in deinen Projektordern (erstelle zunächst ein leeres Projekt und speichere es einmal ab). probiere dann folgenden Code aus:

PImage tropfen;
PImage eimer;

void setup() {
  size(400, 600);
  
  eimer = loadImage("bucket_02.png");
  tropfen = loadImage("droplet.png");
}

void draw() {
  background(0,150,255);
  
  image(tropfen, random(50, 350), random(50, 300), 50, 50);
  image(tropfen, random(50, 350), random(50, 300), 50, 50);
  image(tropfen, random(50, 350), random(50, 450), 50, 50);
  
  image(eimer, mouseX, 530, 50, 50);
}