如何设置 BoundingRectangle Position
How to set BoundingRectangle Position
我尝试设置边界矩形位置。
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
首先,我只想指出,在您的 System.out.println() 中,您打印出了两个 X 坐标。无论如何,X 和 Y 坐标位于精灵的左下角,所以如果你的精灵是 100 x 100 那么结果是正确的。我建议制作您自己的矩形方法,称为 getBounds() 或其他名称,并定义 x、y、高度和宽度,然后使其跟随您的 sprite。我通常在我的玩家角色中这样做并创建他自己的边界框。也许只有我一个人:/
边界 Rectangle
生成 and/or 在您调用 getBoundingRectangle()
时更新。这意味着您没有使用 Rectangle
class 的 setX 或 setY 修改精灵顶点。而是使用 Sprite.setPosition(x,y);
以这种方式移动精灵会移动边界矩形。
还有以下方法可以改变精灵的边界矩形(不要将这个setX和setY与Rectangle classes 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());
我尝试设置边界矩形位置。
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
首先,我只想指出,在您的 System.out.println() 中,您打印出了两个 X 坐标。无论如何,X 和 Y 坐标位于精灵的左下角,所以如果你的精灵是 100 x 100 那么结果是正确的。我建议制作您自己的矩形方法,称为 getBounds() 或其他名称,并定义 x、y、高度和宽度,然后使其跟随您的 sprite。我通常在我的玩家角色中这样做并创建他自己的边界框。也许只有我一个人:/
边界 Rectangle
生成 and/or 在您调用 getBoundingRectangle()
时更新。这意味着您没有使用 Rectangle
class 的 setX 或 setY 修改精灵顶点。而是使用 Sprite.setPosition(x,y);
以这种方式移动精灵会移动边界矩形。
还有以下方法可以改变精灵的边界矩形(不要将这个setX和setY与Rectangle classes 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());