2016-04-25 7 views
0

Я пытаюсь получить координаты касания в Monogame. TouchPanel.DisplayWidth и TouchPanel.DisplayHeight верните правильные значения (1919 x 1080). Однако положение touchLocation является координатой в пределах разрешения 720p. Вот код:Monogame Touchlocation Координаты не совпадают Разрешение сенсорной панели

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

Может кто-нибудь сказать мне, почему разрешение TouchPanel не то же самое разрешение по tl.position использует? Есть ли способ исправить это?

ответ

0

Мне не удалось найти, почему это происходит, но из простого поиска google я нашел способ справиться с этой проблемой.

Вы можете использовать масштабирование, чтобы получить приблизительное положение, близкое к реальному, так как вы, возможно, , вероятно, не нуждаются в правильном положении пикселов, где палец касается экрана.

for (int i = 0; i < touchCollection.Count; i++) 
{ 
    InputPoints.Add(new Vector2 
    (touchCollection[i].Position.X/Game1.ScalingFactor.X, 
    touchCollection[i].Position.Y/Game1.ScalingFactor.Y)); 
} 

Этот код я скопировал из here.

Итак, у меня нет ответа, но обходным решением (получите реальное разрешение, создайте Vector2 scale, который станет мостом между реальным разрешением и разрешением 720p и получит точки касания пользователей с масштабированным разрешением 720p).

 Смежные вопросы

  • Нет связанных вопросов^_^