J'utilise Sprites pour dessiner des images dans une fenêtre D3D. Je dessine une image sur chaque sprite dans un rectangle (0, 0, largeur, hauteur) et utilise Matrix.Transformation2D pour placer l'image dans la vue rendue.Détection de clic de souris et Transformation2D dans Direct3D
Exemple:
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();
}
Comment puis-je détecter qui a été cliqué une certaine image?
Paramètres connus: 1. Position de la souris: mouseX, mouseY 2. Tous les paramètres transformation2D 3. Taille et position de l'image dans un sprite.
Cela devrait être assez de données pour obtenir ce que je veux, mais je n'ai aucune idée quoi faire.
BTW - aucune transformation du monde ni aucune autre à inclure dans le calcul. Je transforme juste les sprites.