Wie animiert man ein Dart-Spiel in BlueJ?
Also, ich muss in Informatik ein Dart-Spiel animieren. Aber ich sitze hier ohne Hilfe verzweifelt herum und zerbreche mir den Kopf.
Bisher hab ich eine Zielscheibe und einen Pfeil. Wie kann ich das animieren, damit es sich nach Auslösen in Richtung Scheibe bewegt?
2 Antworten
Kennst du Daumenkinos?
Das Prinzip ist hier gleich. Du zeichnest ein Objekt immer wieder neu, nur verschiebt sich bei jedem Zeichenvorgang die Position bzw. das Objekt wird immer wieder an einer neuen Position gezeichnet. Damit sich die jeweiligen Zeichenstände nicht gegenseitig überlagern, wird bei jedem Zeichenvorgang die Zeichenfläche geleert. Das lässt sich bspw. realisieren, indem man einfach ein großes Rechteck zeichnet, welches die volle Zeichenfläche einnimmt und dieselbe Hintergrundfarbe hat.
Für die Programmierung bedeutet das, dass du eine Schleife (draw loop) benötigst, die pro Iteration auch noch eine kurze Zeitverzögerung innehat, andernfalls läuft sie zu schnell für das menschliche Auge ab. In SuM (so heißt die Bibliothek, die die Klassen Stift, Bildschirm, etc. implementiert) gibt es dafür eine Klasse Uhr. Du kannst dir eine Instanz von dieser ableiten und in der Schleife die warte-Methode einsetzen.
Uhr zeitmesser = new Uhr();
// in Schleife:
zeitmesser.warte(1000);
Für das Zeichnen wiederum wird natürlich ein Objekt der Klasse Stift verwendet.
BlueJ ist eine Entwicklungsumgebung. Keine Programmiersprache, keine Bibliothek. Genausogut könntest du fragen, wie man das in Notepad tut...
Ich vermute aber mal, es geht um diese Shapes-and-Sprites-Bibliothek, die im deutschen Schulwesen verbreitet ist. Wenn ja, schlage ich vor du machst was auch Profis machen: die Dokumentation und die mitgelieferten Beispiele anschauen - da sind komplette Spiele ausprogrammiert, von denen du dir sicher etwas abschauen kannst.
Danke für die Umfangreiche Antwort jedoch soll ich mit den Grundlagen (Stift,Maus,Tastatur,Bildschirm) solch ein dart spiel programmieren
Lg