Wie animiert man ein Dart-Spiel in BlueJ?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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.

http://www.dingemann.de/sas/

Mementos 
Fragesteller
 09.11.2020, 17:41

Danke für die Umfangreiche Antwort jedoch soll ich mit den Grundlagen (Stift,Maus,Tastatur,Bildschirm) solch ein dart spiel programmieren

Lg

0