Ich versuche, meine Java-Fähigkeit zu verbessern, indem Sie ein 2D-Spiel erstellen. Es ist mir gelungen, ein grundlegendes Spiel zu entwickeln, und ich gehe jetzt zurück auf die Dinge, die ich getan habe, um zu sehen, was ich verbessern kann, und ich strukturiere den Code ein wenig um. Ich hatte zuvor eine drawObject Methode eingebaut, die ein GameObject zeichnet (eine andere Klasse, die ich für mein Spiel erstellt habe), an die das Graphics2D Objekt übergeben werden musste, aber jetzt versuche ich Graphics2D zu erweitern und alle "draw (X) "Methoden, die ich in dieser Erweiterungsklasse erstellt habe, damit ich das Graphics2D-Objekt nicht weitergeben muss, aber ich habe Schwierigkeiten.Erweitern Graphics2D - Casting verursacht Ausnahme
Ich starte die Klasse wie folgt: public abstract class GameGraphics extends Graphics2D
. Es erscheinen keine Fehler in Eclipse, daher führe ich es aus, aber das ist, wenn ich beim Rendern eine Fehlermeldung bekomme, dass sun.java2d.SunGraphics2D
nicht in eine Instanz meiner Klasse umgewandelt werden kann, die es erweitert.
Der Fehler in der folgenden Zeile angezeigt: GameGraphics graphics = (GameGraphics) strategy.getDrawGraphics();
Trotz der Tatsache, dass ich eine bestimmte Methode von Graphics2D verwenden muß, ich versuchte es Graphics zu machen zu verlängern, anstatt zu sehen, was passieren würde. Ich änderte Aufrufe zu Graphics2D Funktionen und fand keine Fehler, aber als ich es ausführte, bekam ich den genau gleichen Fehler. Sogar der SunGraphics2D Teil war der selbe.
Es scheint mir die offensichtliche Lösung wäre, dass die Klasse einfach eine Instanz von Graphics2D enthält, anstatt Graphics2D zu erweitern, jedoch würde ich eine Erweiterung bevorzugen, wenn es möglich ist.
Jede Hilfe wäre willkommen!
Sie sollen 'Graphics2D' nicht erweitern. Die nativen Versionen der Plattform sind diejenigen, die es erweitern. Bevorzugen Sie die Komposition über die Vererbung, in diesem Fall haben Sie nicht einmal eine Wahl. – Kayaman
Vielen Dank! Wird besorgt. – VortixDev