8.581
Bearbeitungen
Jneug (Diskussion | Beiträge) |
Jneug (Diskussion | Beiträge) 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 | 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 | 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 | 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 | 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 |
Bearbeitungen