MonoGame по-разному масштабирует экран на разных телефонах - PullRequest
0 голосов
/ 18 апреля 2020

Итак, в основном моя проблема в том, что элементы управления моего приложения работают по-разному на разных телефонах. Мой код:

GameObject Button = new GameObject;

void Begin()
{
    SetButton();
    TouchPanel.Listen(ButtonState.Pressed, CheckTouch1, "null");
}

void SetButton()
{
    Button = new GameObject(Screen.Width * 0.555, Screen.Height * 0.166);
    Button.X = 0.0;
    Button.Y = Screen.Height * 0.286;
    Button.Shape = Shape.Rectangle;
    Add(Button);
}

void CheckTouch1(Touch touchpoint)
{
    bool IsInside;
    Vector Point = new vector(touchpoint.PositionOnScreen.X, touchpoint.PositionOnScreen.Y);
    IsInside = CheckTouch2(Point, Button);
    if(IsInside == true)
    { 
       //Do Something
    }
}

bool CheckTouch2(Vector p, GameObject area)
{
    bool IsInside;
    if (area.IsInside(p) == true)
    {
         IsInside = true;
         return IsInside;
    }
    else
    {
         IsInside = false;
         return IsInside;
    }
}

Он хорошо работает на моем телефоне, но на других телефонах кнопка (она видна на экране), кажется, находится в правильном месте, но область, где кнопка работает (IsInside = = true) это не та область, где находится изображение кнопки. Другими словами, область, где работает кнопка, расположена не на своем месте.

...