Я работаю над классом для кнопки. Идея состоит в том, что кнопка вычисляет размер текста, а затем соответствующим образом масштабируется.
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));
Но столкновение происходило в милях от кнопки
Заранее спасибо.
(location.Y + buttonTexture.Height) * scale.Y
мне кажется странной, не должна ли она бытьlocation.Y + buttonTexture.Height * scale.Y
- person jrbeverly   schedule 27.08.2013