Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] ¿ Corte horizontal imagen Sprite que salga en el otro extremo ?

Estas en el tema de ¿ Corte horizontal imagen Sprite que salga en el otro extremo ? en el foro de Java en Foros del Web. Necesito que al dibujar una imagen o sprite en canvas si se corta horizontalmente en los limites del lienzo salga la parte cortada por el ...
  #1 (permalink)  
Antiguo 12/10/2015, 10:54
Avatar de loganbdn  
Fecha de Ingreso: enero-2009
Ubicación: Badalona
Mensajes: 114
Antigüedad: 15 años, 11 meses
Puntos: 1
¿ Corte horizontal imagen Sprite que salga en el otro extremo ?

Necesito que al dibujar una imagen o sprite en canvas si se corta horizontalmente en los limites del lienzo salga la parte cortada por el otro extremo.

Es decir teniendo un lienzo de 640 x 400, si dibujo una imagen llamada dibujo1.png con un ancho de 20 cortaría 10 pixels en el extremo que no se verían. Lo que quiero es que esos 10 pixels que no se ven aparezcan en el lado contrario.

El código para dibujar la imagen es esta.
Código:
BufferedImage img1 = null;    
try 
  { img1=ImageIO.read(new File("sprites/dibujo1.png")); } catch(IOException e) {}
g2.drawImage(img1,630,200,null);
¿ Hay algún método de alguna clase que me haga en Java lo que pido o algún algoritmo sencillo ?
  #2 (permalink)  
Antiguo 19/10/2015, 08:09
Avatar de andrespintonegreira  
Fecha de Ingreso: octubre-2015
Mensajes: 4
Antigüedad: 9 años, 2 meses
Puntos: 1
Respuesta: ¿ Corte horizontal imagen Sprite que salga en el otro extremo ?

Lo que tienes que hacer es comprobar si se sale del lienzo, y si es así volver a dibujarla en el otro lado calculando la posición para que sólo se vea la parte de falta.

Código Java:
Ver original
  1. int pos = 630;
  2. g2d.drawImage(img1, pos, 200, null);
  3.  
  4. // Calcula qué parte de la imagen queda fuera del lienzo.
  5. int parteOculta = pos + img1.getWidth() - 640;
  6.  
  7. if(parteOculta > 0){
  8.  
  9.     // Calcula la posición.
  10.     int desplazamiento = img1.getWidth() - parteOculta;
  11.     // El desplazamiento es negativo para que solo se vea la
  12.     // parte que falta.
  13.     g2d.drawImage(img1, -desplazamiento, 200, null);
  14.  
  15. }
  #3 (permalink)  
Antiguo 19/10/2015, 18:00
Avatar de loganbdn  
Fecha de Ingreso: enero-2009
Ubicación: Badalona
Mensajes: 114
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: ¿ Corte horizontal imagen Sprite que salga en el otro extremo ?

No se si hay un método en Canvas que ya lo hiciera sin tener que hacer calculos. Gracias por la respuesta.

Etiquetas: clase, corte, horizontal, sprite
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:38.