ArkaLlop - Clon del Arkanoid
Llop Site Home > JAVA > ArkaLlop > Fondos y bordes
Fondos y bordes:
Clase FondosPantalla package arkallop; import java.awt.*; /** 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 */ /** Otra clase 'librería' (no es necesario crear una instancia para acceder a su funcionalidad). Almacena y proporciona las imágenes disponibles como fondos de pantalla. */ public class FondosPantalla { /** Constante que indica el total de fondos de pantalla disponibles. */ public static final byte TOTAL_FONDOS = 4; /** Constante que representa el primer fondo. */ public static final byte FONDO_0 = 0; /** Constante que representa el segundo fondo. */ public static final byte FONDO_1 = 1; /** Constante que representa el tercer fondo. */ public static final byte FONDO_2 = 2; /** Constante que representa el cuarto fondo. */ public static final byte FONDO_3 = 3; /** Tabla en la que se almacenan los fondos de pantalla. */ private static Image arrayImagenesBorde []; // Rellenamos el array de imágenes con los 4 fondos (en el fichero de recursos). static { arrayImagenesBorde = new Image [TOTAL_FONDOS]; for (byte i = 0; i < TOTAL_FONDOS; i++) arrayImagenesBorde [i] = ArkaLlop.getImagen ("fondo" + i + ".jpg"); } /** Devuelve una de las imágenes de fondo de pantalla. @param componente byte Entero que representa el fondo (utilizar una de las constantes de la clase). @return Image La imagen que se ha pedido. */ public static Image getImagenFondo (byte componente) { return arrayImagenesBorde [componente]; } } Clase FondosPantalla package arkallop; import java.awt.*; /** Encapsula todas las imágenes y las animaciones propias de los bordes del escenario. Además, proporciona métodos que devuelven esas imágenes. */ public class BordesPantalla { /** Constante que representa el total de imágenes no animadas de que consta el borde. */ public static final byte TOTAL_BORDES = 4; /** Constante que representa los bordes derecho e izquierdo. */ public static final byte BRD_LAD = 0; /** Constante que representa el borde superior. */ public static final byte BRD_SUP = 1; /** Constante que representa el borde inferior. */ public static final byte BRD_INF = 2; /** Constante que representa la puerta. */ public static final byte PUERTA = 3; /** Tabla constante para los elementos no animados del borde. */ private static Image arrayImagenesBorde []; /** Tabla constante para las imágenes de la animación de las vainas. */ private static Image vaina []; /** Tabla constante que indica los fotogramas y el orden que siguen para completar la animación de las vainas. */ private final static byte secuenciaVainas [] = new byte [] {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2}; // Índice que indica el fotograma en la 'secuenciaVainas' a mostrar. private byte indiceAnimVainas; /** Tabla constante para las imágenes de la animación de la puerta abierta. */ private static Image puertaAbierta []; /** Tabla constante que indica los fotogramas y el orden que siguen para completar la animación de la puerta abierta. */ private final static byte secuenciaPuerta [] = new byte [] {0, 0, 0, 1, 1, 1, 2, 2, 2}; // Índice que indica el fotograma en la 'secuenciaPuerta' a mostrar. private byte indiceAnimPuerta; /** Constructor. Pone los índices para las animaciones a cero. */ public BordesPantalla () { indiceAnimVainas = 0; indiceAnimPuerta = 0; } /** Devuelve el fotograma apropiado para la animación de las vainas. @return Image Siguiente fotograma en la animación de las vainas. */ public Image getVaina () { // No podemos permitir que el índice marque una posición fuera del array. if (indiceAnimVainas == 36) indiceAnimVainas = 0; return vaina [secuenciaVainas [indiceAnimVainas++]]; } /** Devuelve el fotograma apropiado para la animación de la puerta. @return Image Siguiente fotograma en la animación de la puerta. */ public Image getPuerta () { // No podemos permitir que el índice marque una posición fuera del array. if (indiceAnimPuerta == 9) indiceAnimPuerta = 0; return puertaAbierta [secuenciaPuerta [indiceAnimPuerta++]]; } /** Inicializaciones estáticas. Todas las imágenes se cargan aquí; ahora ya podemos olvidarnos de ellas. */ static { byte i; // Las imágenes sin movimiento. arrayImagenesBorde = new Image [TOTAL_BORDES]; for (i = 0; i < TOTAL_BORDES; i++) arrayImagenesBorde [i] = ArkaLlop.getImagen ("brd" + i + ".gif"); // La animación de la vaina. vaina = new Image [3]; for (i = 0; i < 3; i++) vaina [i] = ArkaLlop.getImagen ("vaina" + i + ".gif"); // La animación de la puerta. puertaAbierta = new Image [3]; for (i = 0; i < 3; i++) puertaAbierta [i] = ArkaLlop.getImagen ("puerta" + i + ".gif"); } /** Método estático que devuelve una de las imágenes no animadas de los bordes. @param componente byte Representa el elemento del borde cuya imagen queremos. Se debe utilizar una de las constantes byte de esta misma clase. @return Image La imagen del elemento del borde. */ public static Image getImagenBorde (byte componente) { return arrayImagenesBorde [componente]; } }
¿Comentarios, sugerencias?: llopsite.at.yahoo.es | © 2005-07 Albert Lobo
Última actualización: 18-Feb-2007