3

キャンバスに一連の長方形を描いています。長方形はある角度で動くはずです。何らかの理由で、移動するとスケールアップします。

xPos += xSpeed;
yPos += ySpeed;
updateBounds(xPos, yPos, width, height);

私の UpdateBounds メソッド:

public void updateBounds(double x, double y, double w, double h) {
    bounds.setRect(x, y, w, h);
}

Bounds は Rectangle2D オブジェクトです。そして私の描画方法:

g.fillRect((int) bounds.getX(), (int) bounds.getY(),
                (int) bounds.getMaxX(), (int) bounds.getMaxY());

なぜこのような動作をするのですか?

4

1 に答える 1

2

Graphics.fillRect()は、描画する四角形の最大の x および y 位置ではなく、幅と高さのパラメーターを受け入れます。

3 番目と 4 番目のパラメータfillRectは Rectangle2D のgetWidth()getHeight()にする必要があります。

参考までに、getMaxX() が提供するものへのリンクを参照してください

于 2015-07-26T04:42:34.387 に答える