Lernpfad:Hehomon/14: Unterschied zwischen den Versionen
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| (6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 2: | Zeile 2: | ||
Wir sind fast am Ende angekommen. Es fehlen nur noch wenige Elemente für das fertige Spiel. Damit der Spieler auch weiß, welche Fähigkeit der Verteidiger eingesetzt hat, wollen wir nun eine Anzeige erstellen, die während des Kampfes Textinformationen anzeigen kann. | Wir sind fast am Ende angekommen. Es fehlen nur noch wenige Elemente für das fertige Spiel. Damit der Spieler auch weiß, welche Fähigkeit der Verteidiger eingesetzt hat, wollen wir nun eine Anzeige erstellen, die während des Kampfes Textinformationen anzeigen kann. | ||
[[Datei:EA anzeige.jpg|center|600px]] | |||
== Die Anzeige == | == Die Anzeige == | ||
Um Text in der {{Engine-Alpha}} darzustellen | Um Text in der {{Engine-Alpha}} darzustellen gibt es die Klasse [https://docs.engine-alpha.org/v3.2.0/ <code>Text</code>]. Texte sind auch ''Blätter'' im Spielbaum. Sie müssen mit der Wurzel verbunden sein, damit sie angezeigt werden. Wie beim Lebensbalken erstellen wir eine extra Klasse der ''View'', die von <code>Knoten</code> erbt. | ||
Aber vorher müsst ihr euch für euer Spieldesign für eine Schriftart entscheiden. In der Spielvorlag befinden sich schon eine Reihe von Schriftarten, die ihr benutzen könnt: | Aber vorher müsst ihr euch für euer Spieldesign für eine Schriftart entscheiden. In der Spielvorlag befinden sich schon eine Reihe von Schriftarten, die ihr benutzen könnt: | ||
| Zeile 48: | Zeile 50: | ||
{{Aufgabe:Start}} | {{Aufgabe:Start}} | ||
Erstellt die Klasse <code>Anzeige</code> nach folgender Vorlage: | Erstellt die Klasse <code>Anzeige</code> nach folgender Vorlage (ersetzt die Paramter des <code>Text</code>-Objektes nach euren Wünschen): | ||
<syntaxhighlight lang="java"> | <syntaxhighlight lang="java"> | ||
import ea.*; | import ea.*; | ||
| Zeile 59: | Zeile 61: | ||
public Anzeige( int pX, int pY ) { | public Anzeige( int pX, int pY ) { | ||
hintergrund = new Rechteck(pX, pY, 400, | hintergrund = new Rechteck(pX, pY, 400, 110); | ||
hintergrund.farbeSetzen(new Farbe(0, 0, 0, 133)); | hintergrund.farbeSetzen(new Farbe(0, 0, 0, 133)); | ||
add(hintergrund); | add(hintergrund); | ||
| Zeile 74: | Zeile 76: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Erstellt ein <code>Anzeige</code>-Objekt in der <code>Arena</code> und überlegt euch einen Weg, den Text der Anzeige zu aktualisieren, so dass die eingesetzte Fähigkeit zu sehen ist (z.B. "Alligung setzt Gator-AID ein"). | Erstellt ein <code>Anzeige</code>-Objekt in der <code>Arena</code> und überlegt euch einen Weg, den Text der Anzeige zu aktualisieren, so dass die eingesetzte Fähigkeit zu sehen ist (z.B. "Alligung setzt Gator-AID ein"). | ||
'''Hinweis''': Ihr könnt den Namen der Fähigkeiten und den Namen des Hehomons aus der Klasse <code>Hehomon</code> abfragen (z.B. mit <code>getNameAngr1()</code>). | |||
{{Aufgabe:End}} | {{Aufgabe:End}} | ||
{{Lösung:Start|Lösungshinweise}} | |||
* Ergänzt in der <code>Arena</code> eine Methode <code>public void setzeAnzeige( String pText )</code>, die den Text der <code>Anzeige</code> über dessen Methode <code>public void setText( String pText )</code> neu setzt. | |||
* Ruft die Methode <code>setzeAnzeige</code> im <code>Spiel</code> so auf, dass die passenden Nachrichten angezeigt werden (in <code>tasteReagieren</code> und <code>verteidigerAmZug</code>). | |||
{{Lösung:End}} | |||
Aktuelle Version vom 26. März 2020, 22:56 Uhr
Wir sind fast am Ende angekommen. Es fehlen nur noch wenige Elemente für das fertige Spiel. Damit der Spieler auch weiß, welche Fähigkeit der Verteidiger eingesetzt hat, wollen wir nun eine Anzeige erstellen, die während des Kampfes Textinformationen anzeigen kann.
Die Anzeige
Um Text in der Engine-Alpha darzustellen gibt es die Klasse Text. Texte sind auch Blätter im Spielbaum. Sie müssen mit der Wurzel verbunden sein, damit sie angezeigt werden. Wie beim Lebensbalken erstellen wir eine extra Klasse der View, die von Knoten erbt.
Aber vorher müsst ihr euch für euer Spieldesign für eine Schriftart entscheiden. In der Spielvorlag befinden sich schon eine Reihe von Schriftarten, die ihr benutzen könnt:
Acme Regular Alfa Slab One Regular Changa ExtraLight Federant Fredoka One Gloria Hallelujah Indie Flower Lacquer Regular Luckiest Guy Regular Odibee Sans Regular Pacifico Regular Permanent Marker Regular Tomorrow Regular Trade Winds Yeon Sung Regular
Eine Vorschau der Schriftarten könnt ihr bei Google Fonts sehen.
Sucht euch eine Schriftart für euer Spiel aus.
Der Konstruktor eines Text-Objektes erwartet eine Menge Parameter:
new Text("Der Kampf beginnt", 0, 0, "Luckiest Guy Regular", 20, 0, "Weiss");
Die Parameter sind
- Der Text
- x-Koordinate
- y-Koordinate
- Name der Schrift (siehe oben)
- Schriftgröße
- Schriftart als Integer:
- 0: Normaler Text
- 1: Fett
- 2: Kursiv
- 3: Fett & Kursiv
- Schriftfarbe
Erstellt die Klasse Anzeige nach folgender Vorlage (ersetzt die Paramter des Text-Objektes nach euren Wünschen):
import ea.*;
public class Anzeige extends Knoten {
private Rechteck hintergrund;
private Text text;
public Anzeige( int pX, int pY ) {
hintergrund = new Rechteck(pX, pY, 400, 110);
hintergrund.farbeSetzen(new Farbe(0, 0, 0, 133));
add(hintergrund);
text = new Text("Der Kampf beginnt", pX+5, pY+5, "Luckiest Guy Regular", 20, 0, "Weiss");
add(text);
}
public void setText( String pText ) {
text.setzeInhalt(pText);
}
}
Erstellt ein Anzeige-Objekt in der Arena und überlegt euch einen Weg, den Text der Anzeige zu aktualisieren, so dass die eingesetzte Fähigkeit zu sehen ist (z.B. "Alligung setzt Gator-AID ein").
Hinweis: Ihr könnt den Namen der Fähigkeiten und den Namen des Hehomons aus der Klasse Hehomon abfragen (z.B. mit getNameAngr1()).
- Ergänzt in der
Arenaeine Methodepublic void setzeAnzeige( String pText ), die den Text derAnzeigeüber dessen Methodepublic void setText( String pText )neu setzt. - Ruft die Methode
setzeAnzeigeimSpielso auf, dass die passenden Nachrichten angezeigt werden (intasteReagierenundverteidigerAmZug).