我正在尝试旋转播放器以跟随鼠标。为此,我使用Graphics obj转换为Graphics2D对象并使用rotate方法。这是我的小组抽奖:
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)中,但我认为拥有更多信息而不是更少的信息会更好。这是我的player.draw(g)
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);
}
我尝试了很多g2d.rotate和绘制形状的组合。有关如何旋转玩家和剑的建议,而不是整个世界本身的建议吗?
答案 0 :(得分:2)
我会尝试将您的播放器绘制到自己的图像(使用自己的图形对象),旋转该图像,然后在主图形上绘制该图像。
你会遇到一些可能令人讨厌的障碍,比如临时图像的透明度,但它们不是任何不能带着一点血汗和眼泪的东西。