XNA Scale BoundingBox

时间:2013-08-27 19:10:11

标签: c# xna bounding-box

我正在为一个按钮上课。 这个想法是按钮计算文本的大小,然后相应地缩放自己。

float X = font.MeasureString(text).X;
float Y = font.MeasureString(text).Y;
float x = 1.0f + (X / buttonTexture.Width);
float y = 1.0f + (Y / buttonTexture.Height);
scale = new Vector2(x,y);

此代码效果很好。

我正在使用BoundingBoxes来检查碰撞。但是,如何在创建边界框时考虑缩放比例?

到目前为止,我有:

BoundingBox buttonBox = new BoundingBox(new Vector3(location, 0), new Vector3(location.X  + buttonTexture.Width, location.Y  + buttonTexture.Height, 0));

我尝试将边界框的右下角乘以比例:

BoundingBox buttonBox = new BoundingBox(new Vector3(location, 0), new Vector3((location.X  + buttonTexture.Width * scale.X), (location.Y  + buttonTexture.Height) * scale.Y, 0));

但碰撞发生在距离按钮数英里的地方

提前致谢。

1 个答案:

答案 0 :(得分:0)

按比例变换边界框:

  scaledBounds = new BoundingBox(bounds.Min * Scale, bounds.Max*Scale)