Java 在不旋转整个屏幕的情况下旋转绘制对象

Java 在不旋转整个屏幕的情况下旋转绘制对象,java,Java,我正在尝试旋转一个玩家来跟随鼠标。为此,我使用铸造到Graphics2D对象的图形对象,并使用旋转方法。这是我的面板图: public void paint(Graphics g){ g.setColor(Color.white); g.clearRect(0, 0, this.getWidth(), this.getHeight()); player.draw(g); enemy.draw(g); mouseSelection.draw(g);

我正在尝试旋转一个玩家来跟随鼠标。为此,我使用铸造到Graphics2D对象的图形对象,并使用旋转方法。这是我的面板图:

public void paint(Graphics g){
    g.setColor(Color.white);
    g.clearRect(0, 0, this.getWidth(), this.getHeight());
    player.draw(g);
    enemy.draw(g);
    mouseSelection.draw(g);
    wallBoard.draw(g);
    //draw the existing walls
    for(Wall w : walls)
        w.draw(g); 

    //draw the potential wall
    potentialWall.draw(g);

    //draw the lineWalls
    for(Wall w : lineWalls)
        w.draw(g);
}
我所有的轮换都是在player.draw(g)中进行的,但我认为拥有更多的信息比拥有更少的信息要好。这是我的球员。抽签(g)


我已经尝试了g2d.rotate和绘制形状的多种组合。关于如何旋转玩家和剑,而不是整个世界本身,有什么建议吗?

我会尝试将玩家绘制到自己的图像(使用自己的图形对象),旋转该图像,然后在主图形上绘制该图像


你可能会遇到一些潜在的恼人的障碍,比如临时图像的透明度,但它们不是一点血汗和眼泪都无法解决的问题。

如何旋转这样的图像?使用任何方法旋转主图像。我会尝试
tempImage.createGraphics().rotate(rotation)但是既然我已经试过了,请恕我直言。嗯,我真的很想知道如何使用原语。谢谢though@Brandon原语是什么意思?比如g.drawOval(),drawRect()等等。你可以看看是什么根据鼠标光标的位置旋转图像。嗯,这是我已经在做的。我遇到的问题是,图形绘制的所有东西都是旋转的,而不是我想要旋转的一个圆和一个矩形。旋转一个圆不会有多大效果;),但是,您可以使用API,它将允许您“转换”形状。看一看,你必须滚动到源代码的底部,但是我创建了一个三角形并在它自己的上下文中旋转它。我目前已经编写了该代码,但由于某些原因它没有绕正确的轴旋转。很酷,我让它工作了,非常感谢!!!:D:D:D
    public void draw(Graphics g){
    //draw the player as a circle for now
    g.setColor(Color.black);
    Graphics2D g2d = (Graphics2D)g;
    g2d.drawOval(getX(), getY(), 20, 20);
    sword.draw(g2d);
    g2d.rotate(rotation);
    g2d.rotate(0);
}