I want to rotate an Image in java, initialized with
playerimage = Toolkit.getDefaultToolkit().getImage("C:/Game/player.png"); //Load Player Image
drawed with:
Graphics2D g = buffer.createGraphics();
g.drawImage(playerimage, player.getX(), player.getY(), null); // Draw Player
Now, I want my playerimage, to rotate to my mouse, so it’s basically looking to my mouse. How would I do this?
The first thing you’ll need to do is get both the mouse pos and the player pos in the same coord system. When you get our mouse pos it will normally be in Screen Coords while your player maybe in your own ‘World Coords’ space. If the players position is tied directly to pixels then you can skip ahead.
Convert the Mouse Position to World coords..
Once you are in the same coord system you need to find the angle required to rotate. This equation will change based on which way your Player art is facing, lets assume it is facing up the position X axis. Then you can just use the dot product to find the angle between where your player is facing and where the point is pointing.
So lets do code…
then call ‘rotate’ and pass in the angBetween!
Double check that the units are correct, often acos will return ‘radians’ and the rotate function will take ‘degrees’ so you need to convert.
More vector info:
Vector Info