Xamarin.Forms - Как изменить цвет фона экрана в случайное время? - PullRequest
0 голосов
/ 01 ноября 2019

Я бы хотел менять цвет фона экрана в случайное время на протяжении всего игрового уровня. Например, игрок играет в игру на белом фоне в течение пары секунд, а затем цвет фона меняется на черный и остается таким же в течение 1 секунды, а затем возвращается к белому экрану. Возможно, через минуту экран становится черным, снова становится белым, а затем через 2 секунды он снова становится черным.

В основном, как мне изменить цвет фона экрана в случайные моменты времени?

1 Ответ

1 голос
/ 01 ноября 2019

Используете ли вы Xamarin.Forms? Это может быть один из подходов для изменения цвета фона в случайное время, поиграйтесь со случайными значениями и интервалом времени, чтобы получить желаемую скорость.

РЕДАКТИРОВАТЬ: если вы хотите, чтобы фон менялся при щелчке, а также в случайное времяэто один из подходов.

    Random random = new Random();
    List<Color> colors = new List<Color>()
    {
        Color.Black,Color.White,Color.Red,Color.Blue
    };

    public AboutPage()
    {
        InitializeComponent();
        Device.StartTimer(TimeSpan.FromSeconds(.5), MaybeChangeBackground);
    }

    private bool MaybeChangeBackground()
    {
        if (random.Next(1, 5) == 4)
            ChangeToRandomBackground();
        return true;
    }

    private void Increment(object sender, EventArgs e) => ChangeToRandomBackground();

    private void ChangeToRandomBackground() => BackgroundColor = colors[random.Next(0, colors.Count+1)];
...