Estoy en el proceso de crear una clase que amplíe Graphics2D. En esta clase, creo algunos de mis propios métodos basados en los existentes, como un método para dibujar un círculo centrado en un punto. Deseo hacer esto para no tener que llamar a varias clases diferentes para representar formas; en cambio, solo llamaré a una única y unificada.
Mi problema en este momento es crear este objeto, al que llamo GraphicsEngine. En un subproceso del juego que amplía Canvas, creo un objeto gráfico que luego intento convertir en un objeto GraphicsEngine (ligeramente ampliado a continuación para mayor claridad):
GraphicsEngine graphicsEngine; private void render(){ BufferStrategy bufferStrategy = getBufferStrategy(); if(bufferStrategy == null) { createBufferStrategy(3); return; } Graphics g = bufferStrategy.getDrawGraphics(); Graphics2D g2d = (Graphics2D) g; graphicsEngine = (GraphicsEngine)g2d; }Cuando intento inicializar el objeto GraphicsEngine, obtengo una ClassCastException. (
Enlace a mi clase GraphicsEngine para evitar el desorden
Me pregunto por qué recibo esta excepción, ya que no he introducido ninguna variable nueva, solo métodos, que no creo que importen en el casting. Dado que Graphics se puede convertir a Graphics2D, supuse que también se podría convertir a una subclase de Graphics2D. Agradecería cualquier ayuda para entender por qué este no es el caso o qué error estoy cometiendo en este proceso. Además, agradecería cualquier ayuda para que funcione la inicialización del objeto GraphicsEngine. ¡Salud!