Мой цикл замедляет мой таймер.Как исправить? - PullRequest
0 голосов
/ 04 июня 2018

Я создаю мини-игру, в которой космическому кораблю нужно избегать метеоритов. У меня есть два таймера, один для создания потока, а второй для движения метеора.Первый таймер на тике (2000) имеет следующий код:

    int pozicija = rnd.Next(1, 26);
    pozicija *= 30;
    meteor[i] = new PictureBox()
        {
            BackColor = Color.Transparent,
            Size = new Size(30, 30),
            Location = new Point(pozicija, 0),
            Image = imageList2.Images[0],
        };
    this.Controls.Add(meteor[i]);
    i++;

, который создает случайное падение метеора, и это работает.Но у меня есть еще один таймер, который при тике (1) перемещает метеор в нижнюю часть формы, и я использовал этот код:

for (int j = 0; j < i; j++)
        {
            meteor[j].Top += 5;
            if (meteor[j].Location.Y == 800)
            {
                meteor[j].Controls.Remove(meteor[i]);
                meteor[j].Dispose();
            }
        }

Здесь я добавляю 5px к вершине моего объекта-метеора и избавляюсь от метеоритовесли они упадутПосле каждого созданного метеорита все они движутся медленнее, чем должны.Я также объявил массив pictureBox как глобальное и случайное число.Может кто-нибудь предложить мне решение этого или почему это произошло?Если вам нужно визуализировать эту форму здесь, у вас есть img.

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