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

  • addFrame ( int position , int size ): 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).
  • removeFrames (): 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();
  String imageFile = world.getWorldPath() + "titulo.pgn";
  theClient.addFrame ( ImageConstants.TOP , 300 );
  theClient.useImage ( imageFile , ImageConstants.FRAME , ImageConstants.TOP , ImageConstants.NO_SCALING );
}
frames.1271025363.txt.gz · Última modificación: 2010/04/12 00:36 por al-khwarizmi