我试图设置边界矩形的位置。

spr.getBoundingRectangle().setPosition(100,100);
Sytem.out.println(spr.getBoundingRectangle.getX() + " " + spr.getBoundingRectangle.getX());
// and the output is always 0,0(position)


每当条件== true时,我也试图设置它的位置

if(justTouched == true){
     spr.getBoundingRectangle().setPosition(100,100);
    Sytem.out.println(spr.getBoundingRectangle.getX() + " " + spr.getBoundingRectangle.getX());
}// but the result is the same

最佳答案

调用Rectangle时会生成和/或更新边界getBoundingRectangle()。这意味着您不会通过使用Rectangle类的setX或setY来修改精灵顶点。而是使用Sprite.setPosition(x,y);以这种方式移动精灵,以移动边界矩形。

还有以下方法可以更改子画面的边界矩形(不要将此setX和setY与Rectangle类setX和setY混淆,该方法会修改子画面的顶点):

setX(x)
setY(y)
setBounds(x,y,width,height)
setSize(width,height)
translate(diffX,diffY)
translateX(diffX)
translateY(diffY)


似乎最适合您的问题的方法如下。

spr.setPosition(100,100);
Rectangle sprBounds = spr.getBoundingRectangle();
Sytem.out.println(sprBounds.getX() + " " + sprBounds.getY());

09-13 13:06