1

ボタンのクラスに取り組んでいます。アイデアは、ボタンがテキストのサイズを計算し、それに応じて自分自身を拡大縮小するというものです。

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));

しかし、衝突はボタンから数マイル離れた場所で発生していました

前もって感謝します。

4

1 に答える 1