Herramientas de usuario

Herramientas del sitio


frames

¡Esta es una revisión vieja del documento!


Utilidad de los frames

Los frames son áreas de tamaño fijo que se pueden añadir a la ventana de juego para mostrar imágenes. Los frames se pueden añadir o quitar de la ventana dinámicamente, además de ir cambiando la imagen que muestran en cada momento. Esto permite, por ejemplo, implementar el clásico interfaz que muestra una imagen de la habitación en la que se encuentra el jugador en la parte superior de la ventana y el texto de la descripción debajo, entre otras funcionalidades.

Métodos para crear y borrar frames

Los siguientes métodos se pueden ejecutar sobre un objeto de la clase MultimediaInputOutputClient: 1)

/*clase InputOutputClient*/ addFrame ( int position , int size )

Este método crea un marco en la posición dada, y del tamaño en pixels dado.

  • La posición puede ser ImageConstants.TOP (arriba), ImageConstants.BOTTOM (abajo), ImageConstants.LEFT (izquierda) o ImageConstants.RIGHT (derecha).
  • El tamaño se refiere al alto si el frame se crea arriba o abajo, o al ancho si se crea a la derecha o a la izquierda (la otra dimensión variará según el tamaño de la ventana de AGE).
  • Puede haber varios marcos a la vez, aunque de momento sólo uno por posición (o sea, por ejemplo, no puede haber dos marcos encima del texto a la vez).
/*clase InputOutputClient*/ removeFrames ()

Este método quita todos los marcos que se hayan creado. Esto es útil si una aventura tiene partes que muestran imágenes y otras que no. Más tarde se pueden volver a crear los marcos con addFrame().

Métodos para mostrar imágenes en frames

Para mostrar una imagen en un frame, puede utilizarse el método useImage especificando como modo de mostrado ImageConstants.FRAME, tal y como se muestra en la sección Imágenes.

Ejemplos de código

Creamos un frame en la parte superior de la pantalla de 300 píxeles de alto, y que incluye la imagen “titulo.pgn” sin escalar.

if ( jugador.getIO() instanceof MultimediaInputOutputClient && jugador.getIO().isGraphicsEnabled() )
{
  MultimediaInputOutputClient theClient = jugador.getIO();
  URL imageURL = world.getResource("titulo.png");
  theClient.addFrame ( ImageConstants.TOP , 300 );
  theClient.useImage ( imageURL , ImageConstants.FRAME , ImageConstants.TOP , ImageConstants.NO_SCALING );
}
1) el método getIO() de la clase Player nos devuelve una instancia de MultimediaInputOutputClient cuando el jugador esté utilizando un cliente de juego con soporte multimedia, como lo es el interfaz de ventanas de Aetheria Game Engine. Nótese que otros clientes, como el de línea de comandos cheapAGE, pueden no soportar multimedia y por lo tanto no permitir el uso de frames. Hay más información sobre esto (incluyendo cómo se comprueba si un cliente soporta multimedia) en la sección sobre imágenes.
frames.1323002994.txt.gz · Última modificación: 2011/12/04 13:49 por al-khwarizmi