Java 在不旋转整个屏幕的情况下旋转绘制对象
我正在尝试旋转一个玩家来跟随鼠标。为此,我使用铸造到Graphics2D对象的图形对象,并使用旋转方法。这是我的面板图: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);
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);
}