Grafiken werden immer in einem Grafikbereich auf der rechten Seite dargestellt. Er wird beim Instanzieren eines World
-Objekts angelegt, beispielsweise durch
new World(800, 600);
Der Ursprung des Koordinatensystems liegt im Zeichenbereich links oben, die y-Achse zeigt nach unten! (Hier die Erklärung dafür.) Die Parameter des Konstruktors der Klasse World legen fest, bei welchen Koordinaten sich der rechte bzw. untere Rand befindet (hier: 800 bzw. 600, siehe die Skizze auf der rechten Seite).
Du kannst den Grafikbereich an der linken Seite mit der Maus kleiner/größer ziehen. Dadurch ändern sich aber nicht die Koordinatengrenzen und auch nicht das Seitenverhältnis des Grafikbereichs. Alle grafischen Objekte werden einfach entsprechend gestreckt.
Tipp: Wenn ein Grafikobjekt (z.B. ein Rechteck) instanziert wird bevor der Grafikbereich angelegt wurde, wird automatisch einer erstellt, der die Koordinatengrenzen $x = 800$ und $y = 600$ besitzt.
Mit dieser Methode kann die Form des Mauscursors verändert werden, wenn er sich über dem Grafikbereich bewegt. Da intern einfach das css-Attribut „cursor“ des Grafikbereichs verändert wird, stehen als mögliche Werte alle entsprechenden css-Werte zur Verfügung, z.B.
Alle möglichen Werte findest Du in dieser Tabelle.
Oft möchte man, dass sich der Mauscursor genau dann ändert, wenn er sich über einem Objekt befindet. Dies erreicht man durch Überschreiben der onMouseEnter
und onMouseLeave
-Methoden der entsprechenden Grafikklasse.
Tipp 1: Regle die Geschwindigkeit hoch, damit der Cursorwechsel „flott“ vonstatten geht!
Tipp 2: Jedes Grafikobjekt besitzt die Methode getWorld
, die das World
-Objekt zurückgibt. Damit lässt sich nicht nur der Mauscursor ändern (siehe das Beispiel unten), sondern man erhält über getWorld().getWidth()
und getWorld().getHeight()
auch auf einfache Weise die Grenzen des Koordinatensystems.