Package j2d

Class JObjeto

java.lang.Object
j2d.JObjeto
Direct Known Subclasses:
JObjetoCirculo, JObjetoEnlace, JObjetoIcono, JObjetoRectangulo, JObjetoTexto

public abstract class JObjeto extends Object
Comportamiento comun definido para todos los objetos del juego. Un objeto tiene un nombre, una posicion y una representacion grafica.

Los objeto se desplazan por la escena en funcion de su velocidad y de la gravedad de la escena (en caso de haberla). Tambien pueden transladarse de forma abrupta en un ciclo llamando a los metodos desplaza() o posiciona(). Si en un ciclo se invocan los metodos desplaza() o posiciona() no se tendran en cuenta la velocidad ni la aceleracion.

Cada objeto tiene asociado un colisionador que es utilizado por la fisica del juego para detectar colisiones. Al detectarse una colision entre objetos se invoca el metodo colision(JObjeto, boolean) de ambos objetos.

Los objetos se ven afectados por la gravedad de la escena. Se puede regular el efecto de la gravedad sobre un objeto particular mediante su propiedad "factor gravedad".

Esta clase es parte de j2d.

  • Constructor Summary

    Constructors
    Constructor
    Description
    JObjeto(String nombre, int largoX, int altoY)
    Crea el objeto con las dimensiones indicadas.
  • Method Summary

    Modifier and Type
    Method
    Description
    final void
    Anhade un objeto de adorno al objeto actual.
    final void
    adornoAnhade(JObjeto adorno, int x, int y)
    Anhade un objeto de adorno al objeto actual.
    final void
    Elimina el objeto como adorno del objeto actual.
    final int
    Retorna el alto del objeto.
    final int
    Retorna el ancho del objeto.
    final Rectangle
    Retorna el area rectangular ocupada por el objeto.
    protected final void
     
    final void
    asignaFactorGravedad(float factorGravedad)
    Asigna el factor de gravedad del objeto.
    final void
    asignaVel(float vx, float vy)
    Asigna la velocidad del objeto.
    final void
    asignaVel(Vector2D velocidad)
    Asigna la velocidad del objeto.
    final void
    asignaVelX(float vx)
    Asigna la componente X de la velocidad del objeto.
    final void
    asignaVelY(float vy)
    Asigna la componente Y de la velocidad del objeto.
    final Point
    Retorna la posicion del centro del objeto.
    void
    Invocada en cada ciclo del juego.
    void
    colision(JObjeto otroObj, boolean causante)
    Invocada por la fisica del juego cuando se detecta la colision con otro objeto.
    Retorna el colisionador asociado al objeto.
    final boolean
    contiene(JObjeto otroObj)
    Indica si el area ocupada por el objeto actual contiene el area correspondiente al objeto pasado como parametro.
    final void
    desplaza(int dx, int dy)
    Desplazamiento del objeto en el ciclo actual.
    final void
    Desplazamiento del objeto en el ciclo actual.
    protected abstract void
    dibujaObjeto(Graphics2D g, int origenX, int origenY)
    Dibuja el objeto en el contexto grafico.
    final Dimension
    Retorna la dimension (ancho x alto) del objeto.
    final boolean
    Retorna si el objeto es un adorno.
    Retorna la escena en la que esta el objeto.
    final boolean
    Indica si el objeto actual esta en contacto (esta tocando) el objeto pasado como parametro.
    final float
    Retorna el factor de gravedad del objeto.
    Retorna el guia seguidor de trayectorias asociado al objeto.
    void
    haceLocalizablePorPunto(boolean localizable)
    Cambia si el objeto puede ser localizable con el método JEscena.buscaObjEnPunto(Point2D).
    final void
    incrementaVel(float vx, float vy)
    Incrementa la velocidad del objeto.
    boolean
    Retorna si el objeto puede ser localizable con el método JEscena.buscaObjEnPunto(Point2D).
    final String
    Retorna el nombre del objeto.
    final void
    Activa la notificacion por salida de pantalla.
    final void
    Desactiva la notificacion por salida de pantalla.
    final boolean
    Retorna si la notificacion por salida de pantalla esta activa o no.
    final Point
    Retorna la posicion del vertice superior izquierdo del objeto.
    final void
    posiciona(Point posDestino)
    Posiciona el vertice superior izquierdo del objeto en el punto indicado.
    final void
    posicionaCentro(Point centroDestino)
    Posiciona el centro del objeto en el punto indicado.
    final Point
    Retorna el punto medio con otro objeto.
    void
    Invocado cuando el objeto sale de la pantalla y esta activa la notificacion por salida por pantalla.
     
    final Vector2D
    Retorna la velocidad de objeto.
    final float
    Retorna la componente X de la velocidad del objeto.
    final float
    Retorna la componente Y de la velocidad del objeto.
    final int
    x()
    Retorna la coordenada x del vertice superior izquierdo del objeto.
    final int
    y()
    Retorna la coordenada y del vertice superior izquierdo del objeto.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • JObjeto

      public JObjeto(String nombre, int largoX, int altoY)
      Crea el objeto con las dimensiones indicadas.
      Parameters:
      nombre - nombre del objeto. En caso de que el nombre sea null, se asignara un nombre al objeto con el nombre de su clase y un contador.
      largoX - longitud en pixels del objeto.
      altoY - altura en pixels del objeto.
  • Method Details

    • nombre

      public final String nombre()
      Retorna el nombre del objeto.
      Returns:
      el nombre del objeto.
    • escena

      public JEscena escena()
      Retorna la escena en la que esta el objeto.
      Returns:
      la escena en la que esta el objeto o null si el objeto no esta en ninguna escena.
    • x

      public final int x()
      Retorna la coordenada x del vertice superior izquierdo del objeto.
      Returns:
      la coordenada x del vertice superior izquierdo del objeto.
    • y

      public final int y()
      Retorna la coordenada y del vertice superior izquierdo del objeto.
      Returns:
      la coordenada y del vertice superior izquierdo del objeto.
    • posicion

      public final Point posicion()
      Retorna la posicion del vertice superior izquierdo del objeto.
      Returns:
      la posicion del vertice superior izquierdo del objeto.
    • anchoX

      public final int anchoX()
      Retorna el ancho del objeto.
      Returns:
      el ancho del objeto.
    • altoY

      public final int altoY()
      Retorna el alto del objeto.
      Returns:
      el alto del objeto.
    • dimension

      public final Dimension dimension()
      Retorna la dimension (ancho x alto) del objeto.
      Returns:
      la dimension (ancho x alto) del objeto.
    • centro

      public final Point centro()
      Retorna la posicion del centro del objeto.
      Returns:
      la posicion del centro del objeto.
    • area

      public final Rectangle area()
      Retorna el area rectangular ocupada por el objeto.
      Returns:
      el area rectangular ocupada por el objeto.
    • colisionador

      public final Colisionador colisionador()
      Retorna el colisionador asociado al objeto.
      Returns:
      el colisionador asociado al objeto.
    • guia

      public final GuiaObjeto guia()
      Retorna el guia seguidor de trayectorias asociado al objeto.
      Returns:
      el guia seguidor de trayectorias asociado al objeto.
    • factorGravedad

      public final float factorGravedad()
      Retorna el factor de gravedad del objeto.
      Returns:
      el factor de gravedad del objeto.
    • asignaFactorGravedad

      public final void asignaFactorGravedad(float factorGravedad)
      Asigna el factor de gravedad del objeto. Para el objeto la aceleracion de la gravedad se vera multiplicada por este factor. En particular, si este factor es 0, el objeto no se vera afectado por la gravedad de la escena.
      Parameters:
      factorGravedad - factor de gravedad del objeto.
      Throws:
      UnsupportedOperationException - si el objeto es un adorno.
    • desplaza

      public final void desplaza(Vector2D d)
      Desplazamiento del objeto en el ciclo actual.
      Parameters:
      d - desplazamiento del objeto.
      Throws:
      UnsupportedOperationException - si el objeto es un adorno.
    • desplaza

      public final void desplaza(int dx, int dy)
      Desplazamiento del objeto en el ciclo actual.
      Parameters:
      dx - componente x del vector de desplazamiento del objeto.
      dy - componente y del vector de desplazamiento del objeto.
      Throws:
      UnsupportedOperationException - si el objeto es un adorno.
    • posiciona

      public final void posiciona(Point posDestino)
      Posiciona el vertice superior izquierdo del objeto en el punto indicado.
      Parameters:
      posDestino - punto donde posicionar el vertice superior izquierdo el objeto.
      Throws:
      UnsupportedOperationException - si el objeto es un adorno.
    • posicionaCentro

      public final void posicionaCentro(Point centroDestino)
      Posiciona el centro del objeto en el punto indicado.
      Parameters:
      centroDestino - punto donde posicionar el centro del objeto.
      Throws:
      UnsupportedOperationException - si el objeto es un adorno.
    • asignaDimension

      protected final void asignaDimension(Dimension dimension)
    • velX

      public final float velX()
      Retorna la componente X de la velocidad del objeto.
      Returns:
      la componente X de la velocidad del objeto.
    • velY

      public final float velY()
      Retorna la componente Y de la velocidad del objeto.
      Returns:
      la componente Y de la velocidad del objeto.
    • velocidad

      public final Vector2D velocidad()
      Retorna la velocidad de objeto.
      Returns:
      la velocidad de objeto.
    • asignaVel

      public final void asignaVel(float vx, float vy)
      Asigna la velocidad del objeto.
      Parameters:
      vx - componente X de la velocidad.
      vy - componente Y de la velocidad.
      Throws:
      UnsupportedOperationException - si el objeto es un adorno.
    • asignaVel

      public final void asignaVel(Vector2D velocidad)
      Asigna la velocidad del objeto.
      Parameters:
      velocidad - velocidad del objeto.
      Throws:
      UnsupportedOperationException - si el objeto es un adorno.
    • asignaVelX

      public final void asignaVelX(float vx)
      Asigna la componente X de la velocidad del objeto.
      Parameters:
      vx - componente X de la velocidad del objeto.
      Throws:
      UnsupportedOperationException - si el objeto es un adorno.
    • asignaVelY

      public final void asignaVelY(float vy)
      Asigna la componente Y de la velocidad del objeto.
      Parameters:
      vy - componente Y de la velocidad del objeto.
      Throws:
      UnsupportedOperationException - si el objeto es un adorno.
    • incrementaVel

      public final void incrementaVel(float vx, float vy)
      Incrementa la velocidad del objeto.
      Parameters:
      vx - componente X del incremento de velocidad.
      vy - componente Y del incremento de la velocidad.
      Throws:
      UnsupportedOperationException - si el objeto es un adorno.
    • haceLocalizablePorPunto

      public void haceLocalizablePorPunto(boolean localizable)
      Cambia si el objeto puede ser localizable con el método JEscena.buscaObjEnPunto(Point2D).
      Parameters:
      localizable - si es localizable o no.
    • localizablePorPunto

      public boolean localizablePorPunto()
      Retorna si el objeto puede ser localizable con el método JEscena.buscaObjEnPunto(Point2D).
      Returns:
      si el objeto puede ser localizable con el método JEscena.buscaObjEnPunto(Point2D).
    • adornoAnhade

      public final void adornoAnhade(JObjeto adorno)
      Anhade un objeto de adorno al objeto actual.

      El objeto se queda en la posicion en la que esta, solo que ahora pasa a moverse manteniendo su posicion relativa con el objeto actual (que pasa a ser su maestro).

      Este metodo esta pensado para objetos "normales" que se convierten en adornos en un momento dado.

      Un objeto de adorno se dibuja cuando se dibuja su maestro y no interviene en las colisiones ni es detectado como receptor de eventos puesto que no esta incluido en la escena. Si estaba en la escena, el adorno deja de estarlo al llamar a este metodo.

      Parameters:
      adorno - objeto adorno.
      Throws:
      AssertionError - si el adorno es de un tipo no permitido.
    • adornoAnhade

      public final void adornoAnhade(JObjeto adorno, int x, int y)
      Anhade un objeto de adorno al objeto actual.

      Un objeto de adorno se dibuja cuando se dibuja su maestro y no interviene en las colisiones ni es detectado como receptor de eventos puesto que no esta incluido en la escena. Si estaba en la escena, el adorno deja de estarlo al llamar a este metodo.

      Parameters:
      adorno - objeto adorno.
      x - posicion x relativa a la esquina superior izquierda del objeto actual.
      y - posicion y relativa a la esquina superior izquierda del objeto actual.
    • adornoElimina

      public final void adornoElimina(JObjeto adorno)
      Elimina el objeto como adorno del objeto actual.
      Parameters:
      adorno - objeto adorno a eliminar.
      Throws:
      UnsupportedOperationException - si el objeto no es un adorno.
    • esAdorno

      public final boolean esAdorno()
      Retorna si el objeto es un adorno.
      Returns:
      si el objeto es un adorno.
    • ciclo

      public void ciclo()
      Invocada en cada ciclo del juego. Por defecto no hace nada. Puede ser redefinida por el programador para dotar de comportamiento al objeto.
    • salidaPantalla

      public void salidaPantalla()
      Invocado cuando el objeto sale de la pantalla y esta activa la notificacion por salida por pantalla.
    • notificacionSalidaPantallaActiva

      public final void notificacionSalidaPantallaActiva()
      Activa la notificacion por salida de pantalla. Se invoca el metodo salidaPantalla().
    • notificacionSalidaPantallaDesactiva

      public final void notificacionSalidaPantallaDesactiva()
      Desactiva la notificacion por salida de pantalla. Si el objeto sale de la pantalla es eliminado.
    • notificacionSalidaPantallaEstaActiva

      public final boolean notificacionSalidaPantallaEstaActiva()
      Retorna si la notificacion por salida de pantalla esta activa o no.
      Returns:
      si la notificacion por salida de pantalla esta activa o no.
    • colision

      public void colision(JObjeto otroObj, boolean causante)
      Invocada por la fisica del juego cuando se detecta la colision con otro objeto. Por defecto no hace nada.
      Parameters:
      otroObj - objeto con el que se ha producido la colision.
      causante - es falso si este objeto no se ha movido en este ciclo puesto que, en ese caso, el objeto no ha podido ser el causante la colision.
    • dibujaObjeto

      protected abstract void dibujaObjeto(Graphics2D g, int origenX, int origenY)
      Dibuja el objeto en el contexto grafico.
      Parameters:
      g - contexto grafico en el que dibujar el objeto.
      origenX - coordenada x del punto respecto al que dibujar el objeto. Solo puede ser distinto de 0 para los objetos adorno.
      origenY - coordenada y del punto respecto al que dibujar el objeto. Solo puede ser distinto de 0 para los objetos adorno.
    • estaEnContacto

      public final boolean estaEnContacto(JObjeto otroObj)
      Indica si el objeto actual esta en contacto (esta tocando) el objeto pasado como parametro.
      Parameters:
      otroObj - el objeto con el que se quiere saber si hay contacto.
      Returns:
      si los objetos estan en contacto o no.
    • contiene

      public final boolean contiene(JObjeto otroObj)
      Indica si el area ocupada por el objeto actual contiene el area correspondiente al objeto pasado como parametro.
      Parameters:
      otroObj - el objeto con el que se quiere saber si esta contenido.
      Returns:
      si el objeto esta contenido o no.
    • puntoMedioConObjeto

      public final Point puntoMedioConObjeto(JObjeto otroObj)
      Retorna el punto medio con otro objeto.
      Parameters:
      otroObj - el otro objeto.
      Returns:
      el punto medio con otro objeto.
    • toString

      public String toString()
      Overrides:
      toString in class Object