Я создаю мини-игру, в которой космическому кораблю нужно избегать метеоритов. У меня есть два таймера, один для создания потока, а второй для движения метеора.Первый таймер на тике (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.