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

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 34: Zeile 34:
== Bilder benutzen ==
== 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.
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.
Für unser Spiel benötigen wir zwei Bilder: Einen Regentropfen und einen Eimer.
Zeile 42: Zeile 42:
</gallery>
</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:
Lade die beiden Bilder runter (Rechtsklick -> Speicher unter..) und kopiere sie in deinen Projektordner (erstelle zunächst ein leeres Projekt und speichere es einmal ab). Probiere dann folgenden Code aus:


<syntaxhighlight lang="java" line="1">
<syntaxhighlight lang="java" line="1">
Zeile 73: Zeile 73:
Ist zum Beispiel ein Tropfen an den Koordinaten <code>(x|y)</code>, dann sind die Eckpunkte des Tropfens durch <code>(x|y)</code>, <code>(x+width|y)</code>, <code>(x+width|y+height)</code> und <code>(x|y+height)</code> beschrieben.
Ist zum Beispiel ein Tropfen an den Koordinaten <code>(x|y)</code>, dann sind die Eckpunkte des Tropfens durch <code>(x|y)</code>, <code>(x+width|y)</code>, <code>(x+width|y+height)</code> und <code>(x|y+height)</code> beschrieben.


Nun kannst du mit Bedingten Anweisungen prüfen, ob sich diese Rechteck mit dem eines anderen Objektes überschneidet:
Nun kannst du mit bedingten Anweisungen prüfen, ob sich dieses Rechteck mit dem eines anderen Objektes überschneidet:
<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
if( tropfenX >= eimerX ) {
if( tropfenX >= eimerX ) {
Zeile 86: Zeile 86:
}
}
</syntaxhighlight>
</syntaxhighlight>
{{Warnung|
<code>tropfenX</code>/<code>tropfenY</code> und <code>eimerX</code>/<code>eimerY</code> sind Variablen in denen die Koordinaten ''eines'' Tropfens und des Eimers gespeichert sind. Du kannst sie durch die entsprechenden Variablenbezeichner in deinem Projekt ersetzen.}}


{{Hinweis|
{{Hinweis|
Das Verschachteln von Bedingten Anweisungen in dieser Art wird schnell unübersichtlich.  
Das Verschachteln von bedingten Anweisungen in dieser Art wird schnell unübersichtlich.  
Oft ist es besser, mehrere zusammenhängende Bedingungen zu ''verknüpfen''. Dazu gibt es die ''logischen Operatoren''.
Oft ist es besser, mehrere zusammenhängende Bedingungen zu ''verknüpfen''. Dazu gibt es die ''logischen Operatoren'', die du noch in {{Pfad|14}} kennenlernst.


Das Beispiel oben kann man auch schreiben als:
Das Beispiel oben kann man auch schreiben als:
Zeile 102: Zeile 105:
}}
}}


Da du diese Prüfung immer wieder für alle Tropfen machen musst, bietet es sich an, dafür eine ''Methode mit Rückabe'' zu implementieren, die die <code>x</code>- und <code>y</code>-Koordinate eines Tropfen als ''Parameter'' übergeben bekommt und einen ''Wahrheitswert'' (<code>boolean</code>) ''zurückgibt'', ob der Tropfen mit dem Eimer kollidiert:
Da du diese Prüfung immer wieder für alle Tropfen machen musst, bietet es sich an, dafür eine {{Pfad|10|''Methode mit Rückabe''|Anker=#Befehle mit Rückgabe programmieren}} zu implementieren, die die <code>x</code>- und <code>y</code>-Koordinate eines Tropfen als ''Parameter'' übergeben bekommt und einen ''Wahrheitswert'' (<code>boolean</code>) ''zurückgibt'', ob der Tropfen mit dem Eimer kollidiert:
<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
boolean trifftEimer( float x, float y ) {
boolean trifftEimer( float x, float y ) {
Zeile 123: Zeile 126:
== Tipps und Hinweise ==
== Tipps und Hinweise ==
{{Tipp:Start|Grundgerüst des Programms}}
{{Tipp:Start|Grundgerüst des Programms}}
Wenn du einen Startpunkt für das Projekt brauchst, dann übernimm diese Vorlage in {{Processing}}. Du musst nicht alle Methoden benutzen. Konzentriere dich erstmal auf das grundlegende Spielprinzip.
Wenn du einen Startpunkt für das Projekt brauchst, dann übernimm diese Vorlage in {{Processing}}. Du musst nicht alle Methoden benutzen. Konzentriere dich zunächst auf das grundlegende Spielprinzip.
<syntaxhighlight lang="java" line="1">
<syntaxhighlight lang="java" line="1">
// Deklaration von Konfigurationsvariablen
// Deklaration von Konfigurationsvariablen
8.581

Bearbeitungen