Tutorials/Sonnensystem: Unterschied zwischen den Versionen
(created) |
K |
||
Zeile 1: | Zeile 1: | ||
− | {{ | + | {{DISPLAYTITLE:Tutorial: Sonnensystem}} |
== Ziel des Tutorials == | == Ziel des Tutorials == |
Version vom 13. April 2014, 03:52 Uhr
Inhaltsverzeichnis
Ziel des Tutorials
Dieses Tutorial ist eine Praxisübung. Du kannst du dein Verständnis der KlasseKnoten
verbessern.
Die Aufgabe
Praktisch angewandt kann man das Knoten-System dann nutzen, wenn mehrere Abläufe (welcher Art auch immer: Bewegungen, Kollisionstests etc.) auf bestimmte Teile einer Grafikansammlung angewandt werden müssen.
Ein einfaches Beispiel ist die Nachbildung unseres Sonnensystems (vereinfacht).
Objekte
Es gibt drei Objekte:
- Die Sonne
- Die Erde
- Der Mond
Diese Objekte lassen sich gut durch Kreise darstellen.
Bewegung im Sonnensystem
Nun können wir verschiedene Bewegungsschemata für die einzelnen Himmelskörper und Himmelskörpergruppen (sprich: die Knoten) aufstellen:
Tipps zur Umsetzung
Die Erstellung der Himmelskörper als Kreise und das Einordnen in Knoten sollte kein Problem sein. Für die Drehungen schenke ich Dir zwei nette kleine Methoden, für den Fall, dass du noch nicht weißt, wie man Animationen realisiert:
Methode zum Drehen eines Raum
-Objektes um ein anderes Raum
-Objekt (in die spielsteuernde Klasse kopieren):
/**
* Dreht ein Objekt immer wieder um ein bestimmtes anderes.
* @param zentrum Das Raum-Objekt, um das sich das andere Objekt drehen soll.
* @param drehobjekt Das Objekt, das sich drehen soll
* @param umlaufzeit Zeit <b>in Millisekunden</b>, die eine Umdrehung dauern soll.
*/
public void dreheUm(Raum zentrum, Raum drehobjekt, int umlaufzeit) {
animationsManager.kreisAnimation(drehobjekt, zentrum.zentrum(), umlaufzeit);
}
Methode zum Drehen eines Raum-Objektes um einen Fixpunkt (in die spielsteuernde Klasse kopieren):
/**
* Dreht ein Objekt immer wieder um einen bestimmten Punkt.
* @param zentrum Das zentrum der Drehung
* @param drehobjekt Das Objekt, das sich drehen soll
* @param umlaufzeit Zeit <b>in Millisekunden</b>, die eine Umdrehung dauern soll.
*/
public void dreheUm(Punkt zentrum, Raum drehobjekt, int umlaufzeit) {
animationsManager.kreisAnimation(drehobjekt, zentrum, umlaufzeit);
}
Mit diesen zwei Methoden kannst Du ganz einfach ein Raum
-Objekt um ein anderes (oder einen Fixpunkt) drehen. Denk daran, auch ein Knoten ist ein Raum
-Objekt! Du kannst also ohne Probleme die Erdumlaufbahn mit dieser Methode um die Sonne drehen.
Die Lösung
Du findest online ein Beispiel-Projekt, das ein solches Sonnensystem umsetzt.
Viel Spaß bei der Herausforderung. Du kannst das Spiel natürlich noch weitertreiben, zum Beispiel durch:
- Mehr Himmelskörper (vll. kriegt deine Erde einen zweiten Mond)
- Einbauen von Interaktivität