K (Doc-Umzug)
 
Zeile 20: Zeile 20:
 
[[Datei:Greenfish_Demo_Gross.png|right|thumb|300px|Der Greenfish Icon Editor]]
 
[[Datei:Greenfish_Demo_Gross.png|right|thumb|300px|Der Greenfish Icon Editor]]
  
Hast du ein Bild für deinen Cursor und kennst den richtigen Hotspot, kannst du die Maus sehr einfach erstellen. Dafür gibt es die Klasse [[Dokumentation/ea/Maus|<code>Maus</code>]]:
+
Hast du ein Bild für deinen Cursor und kennst den richtigen Hotspot, kannst du die Maus sehr einfach erstellen. Dafür gibt es die Klasse {{Doc|ea/Maus}}:
  
 
[[Datei:Greenfish_Demo_Detail.png|right|thumb|300px|Der Hotspot des Cursors liegt bei (2,2)]]
 
[[Datei:Greenfish_Demo_Detail.png|right|thumb|300px|Der Hotspot des Cursors liegt bei (2,2)]]
Zeile 56: Zeile 56:
 
  |-
 
  |-
 
  | Spieler macht einen Linksklick
 
  | Spieler macht einen Linksklick
  | [[Dokumentation/ea/KlickReagierbar|<code>KlickReagierbar</code>]]
+
  | {{Doc|ea/KlickReagierbar}}
 
  | <source>public void klickReagieren(
 
  | <source>public void klickReagieren(
 
           Punkt punkt)</source>
 
           Punkt punkt)</source>
Zeile 62: Zeile 62:
 
  |-
 
  |-
 
  | Spieler macht einen Rechtsklick
 
  | Spieler macht einen Rechtsklick
  | [[Dokumentation/ea/RechtsKlickReagierbar|<code>RechtsKlickReagierbar</code>]]
+
  | {{Doc|ea/RechtsKlickReagierbar}}
 
  | <source>public void rechtsKlickReagieren(
 
  | <source>public void rechtsKlickReagieren(
 
           Punkt punkt)</source>
 
           Punkt punkt)</source>
 
  |-
 
  |-
 
  | Spieler lässt eine Maustaste los
 
  | Spieler lässt eine Maustaste los
  | [[Dokumentation/ea/MausLosgelassenReagierbar|<code>MausLosgelassenReagierbar</code>]]
+
  | {{Doc|ea/MausLosgelassenReagierbar}}
 
  | <source>public void mausLosgelassen(
 
  | <source>public void mausLosgelassen(
 
           Punkt punkt,  
 
           Punkt punkt,  
Zeile 74: Zeile 74:
 
  |-
 
  |-
 
  | Spieler bewegt die Maus
 
  | Spieler bewegt die Maus
  | [[Dokumentation/ea/MausBewegungReagierbar|<code>MausBewegungReagierbar</code>]]
+
  | {{Doc|ea/MausBewegungReagierbar}}
 
  | <source>public void mausBewegt(
 
  | <source>public void mausBewegt(
 
           Vektor bewegung)</source>
 
           Vektor bewegung)</source>

Aktuelle Version vom 31. Oktober 2014, 23:12 Uhr


Ziel des Tutorials

Nach diesem Tutorial kannst du die Maus in dein Spiel einbinden. Das bedeutet vor Allem:

  • Eine Maus ins Spiel bringen und sichtbar machen.
  • Eigene Maus-Cursor erstellen und einbinden.
  • Mausbewegungen & Klicks abfangen und darauf reagieren.


Die Maus erstellen und einbinden

Für eine Maus sind 2 Teile besonders wichtig:

  • Der Cursor: Das "Bild" von der Maus, dass man sieht.
  • Der Hotspot: Das ist der eine Punkt, wo der Cursor "hinzeigt"

Den Cursor (also das Mausbild) kannst du selbst erstellen. Dafür gibt es Software, zum Beispiel den Greenfish Icon Editor.

Der Greenfish Icon Editor

Hast du ein Bild für deinen Cursor und kennst den richtigen Hotspot, kannst du die Maus sehr einfach erstellen. Dafür gibt es die Klasse Maus:

Der Hotspot des Cursors liegt bei (2,2)
//Das Bild für den Cursor. Die Position - hier (0|0) - ist egal.
Bild cursor = new Bild(0, 0, "fadenkreuz.gif");

//Der Hotspot für die Maus, relativ von der linken oberen Ecke des Mausbilds.
Punkt hotspot = new Punkt(11,11);

//Erstelle die Maus mit Bild und Cursor:
Maus maus = new Maus(cursor, hotspot);

Jetzt muss die Maus noch ins Spiel gebracht werden. Das geht sehr leicht. Dafür gibt es in deiner spielsteuernden Klasse die Methode mausAnmelden(Maus maus):

// in der spielsteuernden Klasse

mausAnmelden(maus);

Wenn du diese Schritte richtig übernommen hast, kann man eine Maus in deinem Spiel sehen.

Mausklicks und -bewegung abfangen

Doch nur gut Aussehen reicht natürlich nicht. Die Maus soll natürlich auch auf Eingaben des Spielers reagieren können. Und das ist möglich. Dafür gibt es verschiedene Interfaces.

Interaktion Zugehöriges Interface Interface-Methode Parameter
Spieler macht einen Linksklick KlickReagierbar
public void klickReagieren(
           Punkt punkt)
Punkt gibt die Position des Hotspots, also des "Mausklicks" auf der Zeichenebene an.
Spieler macht einen Rechtsklick RechtsKlickReagierbar
public void rechtsKlickReagieren(
           Punkt punkt)
Spieler lässt eine Maustaste los MausLosgelassenReagierbar
public void mausLosgelassen(
           Punkt punkt, 
           boolean linksklick)
Punkt gibt die Position des Hotspots, also des "Mausklicks" auf der Zeichenebene an.
linksklick ist true, wenn die losgelassene Taste die linke Maustaste war. Sonst ist dieser Wert false.
Spieler bewegt die Maus MausBewegungReagierbar
public void mausBewegt(
           Vektor bewegung)
bewegung beschreibt die Bewegung, die Maus gerade gemacht hat, als Vektor.


Probleme?

Du kannst ein einfaches Beispielprojekt runterladen. Das enthält zwei verschiedenen spielsteuernde Klassen, die jeweils Mausklicks und Mausbewegung demonstrieren. Außerdem zeigen beide, wie du die Maus in dein Spiel einbinden kannst.