Package j2d

Class JEscena

java.lang.Object
j2d.JEscena

public abstract class JEscena extends Object
Clase que representa cada una de las escenas que componen un juego. Dependiendo del tipo de juego, las escenas también se denominan: nivel, pantalla, escenario, etc. Habitualmente también son escenas las pantallas de presentacion del juego, instrucciones, epilogo, etc.

Cada escena contiene una serie de objetos. Los objetos se incluyen en la escena utilizando los metodos incluyeObj(JObjeto, int, int) e incluyeObjCentrado(JObjeto, int, int). Los objetos iniciales de una escena se crean en su constructor y/o en su metodo entraEscena().

Esta clase es parte de j2d.

  • Field Details

    • NOMBRE_FONDO

      public static final String NOMBRE_FONDO
      Nombre del fondo de la escena (creado con los metodos pone*Fondo().
      See Also:
  • Constructor Details

    • JEscena

      public JEscena()
      Crea una escena.
    • JEscena

      public JEscena(String nombre)
      Crea una escena.
      Parameters:
      nombre - nombre que identifica la escena.
  • Method Details

    • nombre

      public final String nombre()
      Retorna el nombre de la escena.
      Returns:
      el nombre de la escena.
    • anchoX

      public final int anchoX()
      Retorna la anchura en pixels de la escena.
      Returns:
      la anchura en pixels de la escena.
    • altoY

      public final int altoY()
      Retorna la altura en pixels de la escena.
      Returns:
      la altura en pixels de la escena.
    • gravedad

      public final float gravedad()
      Retorna la aceleracion de gravedad a la que se ven sometidos los objetos de la escena.
      Returns:
      gravedad a la que se ven sometidos los objetos de la escena.
    • asignaGravedad

      public final void asignaGravedad(float gravedad)
      Asigna la aceleracion de gravedad a la que se ven sometidos los objetos de la escena.
      Parameters:
      gravedad - gravedad a la que se ven sometidos los objetos de la escena.
    • poneTexturaFondo

      public final void poneTexturaFondo(Image textura, float escala)
      Pone el fondo de la pantalla con al textura indicada.
      Parameters:
      textura - imagen de la textura.
      escala - escala de la textura.
    • poneTexturaHexFondo

      public final void poneTexturaHexFondo(Image textura)
      Pone el fondo de la pantalla con al textura hexagonal indicada.
      Parameters:
      textura - imagen de la textura.
    • poneFondo

      public final void poneFondo(Color color)
      Pone el fondo de la pantalla a color indicado. Crea un objeto rectangulo de nombre "escena.fondo".
      Parameters:
      color - del fondo de la pantalla.
    • fondo

      public final JObjetoRectangulo fondo()
      Retorna el fondo de la escena.
      Returns:
      el fondo de la escena o null si la escena no tiene fondo.
    • creaBordes

      public final void creaBordes(Color color)
      Crea bordes de la pantalla como rectangulos que solo ocupan el borde de la pantalla pero muy anchos para que no se lo puedan "saltar" los objetos por muy rapidos que sean. Los bordes son objetos con los nombres "escena.techo", "escena.suelo", "escena.paredIzq" y "escena.paredDer"
      Parameters:
      color - color de los bordes.
    • incluyeObj

      public final void incluyeObj(JObjeto obj, int x, int y) throws JEscena.ObjetoYaEnEscena
      Incluye el objeto en la escena con su esquina superior izquierda en las coordenadas indicadas.
      Parameters:
      obj - objeto a incluir.
      x - coordenada X en la que se situa la esquina superior izquierda del objeto.
      y - coordenada Y en la que se situa la esquina superior izquierda del objeto.
      Throws:
      JEscena.ObjetoYaEnEscena - si el objeto ya se encuentra incluido en la escena.
      UnsupportedOperationException - si el objeto ya esta incluido en otra escena.
    • incluyeObj

      public final void incluyeObj(JObjeto obj, Point pos) throws JEscena.ObjetoYaEnEscena
      Incluye el objeto en la escena con su esquina superior izquierda en punto indicado.
      Parameters:
      obj - objeto a incluir.
      pos - punto en el que se situa la esquina superior izquierda del objeto.
      Throws:
      JEscena.ObjetoYaEnEscena - si el objeto ya se encuentra incluido en la escena.
    • incluyeObjCentrado

      public final void incluyeObjCentrado(JObjeto obj, int centroX, int centroY) throws JEscena.ObjetoYaEnEscena
      Incluye el objeto en la escena con su centro en las coordenadas indicadas.
      Parameters:
      obj - objeto a incluir.
      centroX - coordenada x en la que se situa el centro del objeto.
      centroY - coordenada y en la que se situa el centro del objeto.
      Throws:
      JEscena.ObjetoYaEnEscena - si el objeto ya se encuentra incluido en la escena.
    • incluyeObjCentrado

      public final void incluyeObjCentrado(JObjeto obj, Point centro) throws JEscena.ObjetoYaEnEscena
      Incluye el objeto en la escena con su centro en punto indicado.
      Parameters:
      obj - objeto a incluir.
      centro - punto en el que se situa el centro del objeto.
      Throws:
      JEscena.ObjetoYaEnEscena - si el objeto ya se encuentra incluido en la escena.
    • eliminaObj

      public void eliminaObj(JObjeto obj) throws JEscena.ObjetoNoEnEscena
      Elimina el objeto de la escena.
      Parameters:
      obj - objeto a eliminar.
      Throws:
      JEscena.ObjetoNoEnEscena - si el objeto no esta incluido en la escena.
    • objetos

      public final Collection<JObjeto> objetos()
      Retorna los objetos incluidos en la escena.
      Returns:
      los objetos incluidos en la escena.
    • buscaObj

      public final JObjeto buscaObj(String nombre)
      Busca y retorna un objeto con el nombre indicado incluido en la escena.
      Parameters:
      nombre - nombre del objeto buscado.
      Returns:
      objeto con el nombre indicado o null si en la escena no hay ningun objeto con ese nombre.
    • objetoEstaIncluido

      public final boolean objetoEstaIncluido(JObjeto obj)
      Retorna si el objeto esta incluido en la escena.
      Parameters:
      obj - objeto.
      Returns:
      si el objeto esta incluido en la escena.
    • buscaObjEnPunto

      public final JObjeto buscaObjEnPunto(Point2D p)
      Retorna el ultimo objeto segun el orden de dibujo cuyo area contiene el punto indicado.
      Parameters:
      p - punto.
      Returns:
      el ultimo objeto segun el orden de dibujo cuyo area contiene el punto indicado o null si no hay ningun objeto en ese punto.
    • objetoContenedor

      public final JObjeto objetoContenedor(JObjeto objContenido)
      Retorna el ultimo objeto segun el orden de dibujo cuyo area contiene el area del objeto indicado.
      Parameters:
      objContenido - objeto.
      Returns:
      el ultimo objeto segun el orden de dibujo cuyo area contiene el area del objeto indicado o null si no hay ningun objeto en ese punto.
    • ciclo

      public void ciclo()
      Invocada en cada ciclo del juego. Por defecto este metodo no hace nada.
    • entraEscena

      public void entraEscena()
      Invocada al entrar a una escena. Por defecto este metodo no hace nada. Puede ser redefinido por el usuario.
    • cambioDimension

      public void cambioDimension(Dimension dimActual)
      Invocado cuando las dimensiones del panel de juego han cambiado.
      Parameters:
      dimActual - dimensión actual del panel de juego.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • poneDelante

      public final void poneDelante(JObjeto obj) throws JEscena.ObjetoNoEnEscena
      Dibuja el objeto por delante de todos los demas de la escena.
      Parameters:
      obj - objeto a dibujar delante.
      Throws:
      JEscena.ObjetoNoEnEscena - si el objeto no esta incluido en la escena.
    • controladoTecladoAnhade

      public void controladoTecladoAnhade(IControladoTeclado controlado)
      Anhade un elemento controlado con el teclado.
      Parameters:
      controlado - elemento controlado (habitualmente un objeto o la escena)
    • controladoTecladoElimina

      public void controladoTecladoElimina(IControladoTeclado controlado)
      Elimina un elemento controlado con el teclado.
      Parameters:
      controlado - elemento controlado (habitualmente un objeto o la escena)
    • controladoRatonAnhade

      public void controladoRatonAnhade(IControladoRaton controlado)
      Anhade un elemento controlado con el raton.
      Parameters:
      controlado - elemento controlado (habitualmente un objeto o la escena)
    • controladoRatonElimina

      public void controladoRatonElimina(IControladoRaton controlado)
      Elimina un elemento controlado con el raton.
      Parameters:
      controlado - elemento controlado (habitualmente un objeto o la escena)
    • receptorRatonAnhade

      public void receptorRatonAnhade(IReceptorRaton obj)
      Anhade un objeto receptor de eventos de raton que sera notificado cuando el raton sea pulsado sobre el.
      Parameters:
      obj - objeto receptor de eventos de raton.
    • receptorRatonElimina

      public void receptorRatonElimina(IReceptorRaton obj)
      Elimina un objeto receptor de eventos de raton.
      Parameters:
      obj - objeto receptor de eventos de raton a eliminar.
    • controladosRatonEliminaTodos

      public void controladosRatonEliminaTodos()
      Elimina todos los elementos controlados por el raton.
    • controladosTecladoEliminaTodos

      public void controladosTecladoEliminaTodos()
      Elimina todos los elementos controlados por del teclado.