2013-05-30 4 views
0

Je suis en train de coder un jeu de tir simple dans lequel je veux faire pivoter mon personnage dans la direction de la souris et "tirer". J'ai fait tout le code pour cela, sauf la rotation de l'image réelle. Voici mon code à ce jour: (CECI EST TOUT SOUS LA MÉTHODE DE COMPOSANTS DE PEINTURE)Déplacer et faire pivoter une image simultanément avec AffineTransform

xCent = x + 50; 
    yCent = y + 50; // x and y center of image (x and y change depending on Keyboard Input)  
    a.setToRotation(theta, xCent,yCent); // a = new AffineTransform() Here is my calculation of theta (under the MouseMotionListener): theta = Math.atan2(e.getY() - yCent,e.getX() - xCent); 
    a.setToTranslation(x,y); 
    a.setToRotation(theta, xCent,yCent); 
    g2.drawImage(charac,a, null); 

Comment dois-je procéder maintenant « réglage » les coordonnées x et y de l'image pour l'objet Graphics2D de le dessiner ??

+0

Désolé, ignorez la dernière a.setToRotation (theta, xCent, yCent); – walthamMichael

Répondre

0

Jetez un oeil à ceci:

http://www.javalobby.org/java/forums/t19387.html

public void paint(Graphics g) {` 

    AffineTransform transformer = new AffineTransform(); 
    transformer.translate(5,5); 
    transformer.scale(2,2); 
    Graphics2D g2d = (Graphics2D)g; 
    g2d.setTransform(transformer); 
    // draw to g2d. 
} 

off vous bien sûr Dans votre cas, faire la rotation et la traduction plutôt que de traduire et de l'échelle.

+0

J'ai essayé ceci, mais le translate (x, y) semble surcharger le rotate (theta) – walthamMichael

Questions connexes