Нажмите на кнопку == кнопка появляется в случайном месте - PullRequest
0 голосов
/ 11 июня 2018

Привет, ребята. Я делаю игру, в которой вы должны нажать 10 раз подряд на кнопку, которая после каждого щелчка появляется в случайном месте.Поэтому для этого мне нужно найти высоту и ширину устройства.Я постараюсь сделать это для Android, потому что, как я гуглил для IOS совершенно другой код.Так что для этого я сделаю это:

 public static int ScreenHeight { get; set; }
 public static int ScreenWidth { get; set; }
 App.ScreenHeight = (int)(Resources.DisplayMetrics.HeightPixels / Resources.DisplayMetrics.Density);
 App.ScreenWidth = (int)(Resources.DisplayMetrics.WidthPixels / Resources.DisplayMetrics.Density);

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

Random xLoc = new Random();
Random yLoc = new Random();
int realXLoc;
int realYLoc;
realXLoc = xLoc.Next(1, ScreenWidth);
realYLoc = xLoc.Next(1, ScreenHeight);

По сути, я пытаюсь спросить, это кусок кода, который преобразует мои идеи в реальность.С уважением Ректиньо.

1 Ответ

0 голосов
/ 14 июня 2018

Кажется, вы не получаете правильный ScreenHeight и ScreenWidth.Вы можете попробовать использовать DisplayMetrics class.

Например:

public class MainActivity : AppCompatActivity
{
    int ScreenHeight;
    int ScreenWidth;

    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);

        // Set our view from the "main" layout resource
        SetContentView(Resource.Layout.activity_main);

        Button button = FindViewById<Button>(Resource.Id.button1);
        button.Click += Button_Click;

        DisplayMetrics displayMetrics = new DisplayMetrics();
        WindowManager.DefaultDisplay.GetMetrics(displayMetrics);
        ScreenHeight = displayMetrics.HeightPixels;
        ScreenWidth = displayMetrics.WidthPixels;
    }
    private void Button_Click(object sender, System.EventArgs e)
    {
        Random xLoc = new Random();
        Random yLoc = new Random();
        int realXLoc;
        int realYLoc;
        Button button = sender as Button;
        realXLoc = xLoc.Next(1, ScreenWidth- button.Width);
        realYLoc = xLoc.Next(1, ScreenHeight - button.Height);
        button.SetX(realXLoc);
        button.SetY(realYLoc);
    }
}

И результат:enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...