Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Tiles Hexagonales en Java

Iniciado por Vicente, 17 de Abril de 2003, 06:27:53 PM

« anterior - próximo »

Vicente

                                Hola,

  estoy haciendo un wargame en java, pero me surgen problemas a la hora de dibujar el tablero. Es un tablero formado por hexagonos y tengo las tiles rectangulares en formato png.

  Para pintar la tile creo una BufferedImage (de tipo INT_ARGB), obtengo un objeto Graphics2D y con él pinto la tile (el .png) sobre la BufferedImage. Pero el problema me viene al unir varias tiles: las esquinas del rectangulo de la imagen tienen que ser transparantes (para que no se pisen unos hexagonos a otros) y no se como se aplica el alpha en java. ¿Alguién me puede ayudar? Gracias y un saludo,

Vicente                                

BeRSeRKeR

                                Hola

La verdad es que no he utilizado PNG con Java para especificar transparencias. Para temas de color keying siempre he utilizado el gif. De todas formas, lo que sí he hecho son efectos con alpha blending para poder hacer las imágenes más o menos transparentes. Para ello debes utilizar la clase AlphaComposite. Ahí va un ejemplo del método que utilizaba para pintar un sistema de partículas para el humo:

public void paint(Graphics2D g, Image img, ImageObserver imgObserver)

{

// Recogemos la composición actual para restaurarla posteriormente

Composite oldComp = g.getComposite();



// Especificamos la nueva composición (alpha blending)

g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, getAlpha()));



// Dibujamos el humo

g.drawImage(img, m_Position.x - img.getWidth(imgObserver) / 2,

   m_Position.y - img.getHeight(imgObserver) / 2,

   imgObserver);



// Restauramos la composición original

g.setComposite(oldComp);

}

getAlpha es un método propio que devuelve un valor en el rango [0.0, 1.0]...

A ver si te sirve de algo...

Saludos                                
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Vicente

                                Hola,

  resulta que si a la imagen tu le pones la transparencia en photoshop, el java te lo aplica bien :). Pero gracias de todas formas por el código, porque de la parte de programación gráfica de java no sé casi nada, y el poder ir viendo ejemplos ayuda un montón. Un saludo,

Vicente                                






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.