我试图设置边界矩形的位置。
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());