2016-04-25 1 views
0

J'essaie d'obtenir les coordonnées d'une touche en Monogame. TouchPanel.DisplayWidth et TouchPanel.DisplayHeight renvoient les bonnes valeurs (1919 x 1080). Cependant, la position de l'emplacement tactile est une coordonnée dans une résolution de 720p. Voici le code:Les coordonnées de Touchlocation de Monogame ne correspondent pas à la résolution de l'écran tactile

TouchCollection touchCollection = TouchPanel.GetState(); 
    foreach (TouchLocation tl in touchCollection) 
    { 
     if (tl.State == TouchLocationState.Pressed) 
     { 
      Vector2 position = tl.Position; 
      ... 

Quelqu'un peut-il me dire pourquoi la résolution TouchPanel est pas la même résolution, le tl.position utilise? Y'a t'il un moyen d'arranger cela?

Répondre

0

Je ne pouvais pas trouver pourquoi cela se produit, mais à partir de la simple recherche google, j'ai trouvé le moyen de faire face à ce problème.

Vous pouvez utiliser la mise à l'échelle pour obtenir la position approximative, proche de la réalité, car probablement n'aura pas besoin de la position de précision en pixels réels de l'endroit où le doigt touche l'écran. Ce code a été copié à partir de here. Donc, je n'ai pas la réponse, mais une solution de contournement (obtenir la résolution réelle, créer Vector2 scale qui sera le pont entre la résolution réelle et la résolution 720p, et obtenir des points de contact avec une résolution de 720p).