elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  AffineTransform rotación y movimiento
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: AffineTransform rotación y movimiento  (Leído 2,429 veces)
gelpack

Desconectado Desconectado

Mensajes: 1


Ver Perfil
AffineTransform rotación y movimiento
« en: 25 Abril 2013, 18:36 pm »

Hola,

estoy haciendo un intento de balon botando y rodando a la vez. He conseguido hacer que bote. Y mediante affineTransform he conseguido que gire. Pero no puedo hacer que hagan las dos cosas a la vez.



Para hacerlo girar

AffineTransform tx = AffineTransform.getRotateInstance(angulo*Math.PI/180,getWidth()/2,getHeight()/2);
     
y para hacerlo botar

vX=kxVelocidad;
        posX+=vX;
        vY += Gravedad;
        posY += vY;
       //++angulo;
        //golpear el suelo
        if(posY >= suelo && vY > 0) {
            posY = (int)(suelo);
            vY = -vY + balldegradation;
        }


mediante graphics2d


o pinta esto:
g2d.drawImage(image,balon.getX(),balon.getY(), this);

o pinta esto:
g2d.drawImage(image,tx, this);

a ver quién me puede decir cómo funciona realmente affinetransform, porque le doy mil vueltas, y busco en internet, y no logro que haga lo que necesito.

gracias!!


En línea

crozz2

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: AffineTransform rotación y movimiento
« Respuesta #1 en: 24 Mayo 2013, 04:07 am »

Mira el problema es que AffineTransform mueve todo el sistema de coordenadas, por lo tanto cuando intentas mover hacia abajo (o a cualquier lado) y girar al mismo tiempo lo que logras es que se mueva hacia hacia abajo pero rota, me explico, si tu giras 90grados e intentas mover hacia abajo se moverá hacia la izquierda.

Mi recomendación es que dibujes el balón girando dentro de un control:

public class Balon extends JComponent{

public void paint(Graphics g){
//dibujar balón girando
}

}

y que después lo añadas en el JFrame:

this.add(new Balon());

obviamente puedes configurar el balón antes de agregarlo.

Después puedes encargarle a un hilo que mueva el balón (el control) tal y como si fuera un botón o cualquier otro control de swing.

Espero te sea de ayuda (yo también sufrí ese cambio en el eje de coordenadas jaja por eso lo se).

http://javatap1.blogspot.mx/


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines