1

我正在尝试旋转玩家以跟随鼠标。为此,我使用转换为 Graphics2D 对象的 Graphics obj 并使用 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 和绘制形状的组合。关于我如何旋转玩家和剑而不是整个世界本身的任何建议?

4

1 回答 1

2

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

你会遇到一些潜在的令人讨厌的障碍,比如临时图像的透明度,但它们不是任何一点血汗和眼泪都无法解决的。

于 2012-11-23T20:59:08.160 回答