我使用 Sprites 在 D3D 窗口中绘制图像。我在矩形(0、0、宽度、高度)内的每个精灵上绘制图像,并使用 Matrix.Transformation2D 将图像放置在渲染视图中。
例子:
using (Sprite s = new Sprite(device))
{
s.Begin(SpriteFlags.AlphaBlend);
Matrix tranz = new Matrix();
tranz =
Matrix.Transformation2D(new Vector2(0, 0), 0.0f,
new Vector2(scale, scale),
new Vector2(0, 0), Geometry.DegreeToRadian(angle),
new Vector2(positionX, positionY));
s.Transform = tranz;
Vector3 spriteCenter = new Vector3(0.0f, 0.0f, 0.0f);
Vector3 sprPosition = new Vector3(0.0f, 0.0f, 0.0f);
s.Draw(someTexture, new Rectangle(0, 0, width, height),
spriteCenter, sprPosition,
Color.FromArgb(0xff, 255, 255, 255));
s.End();
}
如何检测到某个图像被点击?
已知参数: 1. 鼠标位置:mouseX, mouseY 2. 所有 transformation2D 参数 3. 精灵中图像的大小和位置。
这应该是足够的数据来获得我想要的,但我不知道该怎么做。
顺便说一句 - 没有世界转换或其他包含在计算中。我只是变换精灵。