Thanks for both your replies, im sure it’ll be of great help to me.
Could you explain your code a little more for me Malohkan? At the moment if the player simply moves up, down, left (straffe) or right (straffe) then i create an Affinetransform called transMove like this
transMove = player.getTransMove();
transMove.translate(player.getSpeed(), 0);
player.setX(player.getX()+player.getSpeed());
player.setTransMove(transMove);
player.setRotate(false);
player.setMove(true);
And if the player rotates left or right i create an AffineTransform called transRotate like this
Point2D before = new Point2D.Double(player.getX() , player.getY());
Point2D after = new Point2D.Double();
transRotate = player.getTransRotate();
transRotate.translate(player.getX(), player.getY());
transRotate.translate(-player.getX(), -player.getY());
transRotate.rotate(Math.toRadians(angle), xRot , yRot);
after = transRotate.transform(before, after);
player.setX((int)transRotate.getTranslateX());
player.setY((int)transRotate.getTranslateY());
player.setTransRotate(transRotate);
player.setRotate(true);
player.setMove(false);
Then when i paint, i have to check weather the players moved or rotated and draw him like this
//if he simply moved
g.drawImage(player.getImage(), player.getTransMove(), null);
.
.
//if he rotated
g.drawImage(player.getImage(), player.getTransRotate(), null);
I know this is a terrible way of doing this, thats why im hoping u can help me create an AffineTransfrom a better way, and maybe be able to draw using only the 1 AffineTransform.
Hope you can help, thanks.