ArkaLlop - Clon del Arkanoid
Llop Site Home > JAVA > ArkaLlop > ArkaLlop
ArkaLlop:
Clase ArkaLlop package arkallop; import java.awt.*; import java.io.*; import java.net.*; import javax.sound.sampled.*; import javax.swing.*; /** Título: ArkaLlop Descripción: Prácticas capítulo 11, ejercicio 4 Copyright: Copyright (c) 2005 Empresa: Casa_Llop @author Albert_Lobo @version 1.0 */ /** Clase principal del programa. */ public class ArkaLlop extends JApplet { // Fuente para casi todos los componentes del juego. private static Font fuenteBeyondWonderland; // Inicializamos la fuente de forma estática. static { try { fuenteBeyondWonderland = Font.createFont (Font.TRUETYPE_FONT, ArkaLlop.class.getResourceAsStream ("rscArkaLlop/Beyond Wonderland.ttf")).deriveFont (35F); } catch (Exception e) { error ("Error al cargar la fuente 'Beyond Wonderland'."); } } private Partida partida; private PantallaMenu pntMenu; private PantallaJuego pntJuego; /** Contructor del applet. */ public ArkaLlop () {} /** Inicializa el applet. */ public void init () { try { SwingUtilities.invokeAndWait (new Runnable () { public void run () { inicializaComponentes (); } }); } catch (Exception excepcion) { error ("Error al intentar arrancar el juego:"); excepcion.printStackTrace (); } } /** Inicializa la partida para el applet, la pantalla de menú, y la de juego. Al principio la 'Pantalla' visible es la de menú. */ private void inicializaComponentes () { partida = new Partida (this); pntMenu = new PantallaMenu (partida); pntJuego = new PantallaJuego (partida); getContentPane ().add (pntMenu); } /** Añade a la pantalla de juego el botón que permite volver a la pantalla de menú. */ public void anadeBotonFinPantalla () { pntJuego.anadeBotonFin (); } /** Se llama a este método para cambiar de la pantalla de juego a la de menú. */ public void cambioAMenu () { partida.stopMusica (); // Paramos la música. pntJuego.setRefrescoConstante (false); // La pantalla de juego deja de refrescarse. getContentPane ().remove (pntJuego); // Quitamos la pantalla de juego del applet, getContentPane ().add (pntMenu); // y ponemos la de menú. repaint (); // Repinta el applet. } /** Se llama a este método para cambiar de la pantalla de menú a la de juego. */ public void cambioAJuego () { partida.variablesPorDefecto (); // Ajusta las variables por defecto de la partida. partida.cargaNivel (); // Carga el primer nivel. getContentPane ().remove (pntMenu); // Quita la pantalla de menú, getContentPane ().add (pntJuego); // y añade la de juego. validate (); // Valida los componentes. pntJuego.requestFocus (); // La pantalla de juego debe tener el foco para capturar eventos. pntJuego.setRefrescoConstante (true); // Queremos que la pantalla de juego se refreque todo el rato. partida.playMusica (); // Que suene la música de fondo. } /** Iniciar el applet. */ public void start () {} /** Detener el applet. */ public void stop () {} /** Destruir el applet. */ public void destroy () {} /** Obtener información del applet: El nombre del autor. */ public String getAppletInfo () { return "Autor: Albert Lobo Cusidó, 2005"; } /** Obtener información de los parámetros. No hay. */ public String [][] getParameterInfo () { return null; } /** Método estático que devuelve una imagen en el fichero de recursos. @param imagen String Nombre del archivo de la imagen. @return Image La imagen correspondiente del fichero de recursos. */ public static Image getImagen (String imagen) { URL uRL = ArkaLlop.class.getResource ("rscArkaLlop/" + imagen) ; if (uRL == null) { System.err.println (imagen + " no encontrada."); return null; } return new ImageIcon (uRL).getImage (); } /** Método que devuelve un flujo de entrada para datos de audio. @param clip String Nombre del archivo de audio. @return AudioInputStream Flujo de datos de retorno. */ public static AudioInputStream getFlujoAudio (String clip) { AudioInputStream retorno = null; URL uRL = ArkaLlop.class.getResource ("rscArkaLlop/" + clip); if (uRL == null) { error (clip + " no encontrado."); return null; } try { retorno = AudioSystem.getAudioInputStream (uRL); } catch (IOException ex) { error (clip + " no encontrado."); } catch (UnsupportedAudioFileException ex) { error (clip + " no puede sonar."); } return retorno; } /** Devuelve la fuente 'Beyond Wonderland'. @return Font Instancia de la fuente. */ public static Font getFuenteBeyondWonderland () { return fuenteBeyondWonderland; } /** Escribe un mensaje de error en la consola de Java. @param mensaje String El mensaje de error a escribir. */ public static void error (String mensaje) { System.err.println (mensaje); } }
¿Comentarios, sugerencias?: llopsite.at.yahoo.es | © 2005-07 Albert Lobo
Última actualización: 18-Feb-2007