Генерация случайного значения только один раз в таймере - PullRequest
0 голосов
/ 25 апреля 2020

Я делаю проект, но я застрял на месте. Мне нужно обнаружение столкновений с другим объектом

private void timer1_Tick(object sender, EventArgs e)
{
    var wheelsControl = wheels.Where(p => p.Text == "*"); 
    foreach (var wheelsC in wheelsControl)
    {
        wheelsC.Location = new Point(wheelsC.Location.X, wheelsC.Location.Y + -5);
    }
    collisonDetection();
}
void collisonDetection()
{
    var recWheel = new Dictionary<Button, Rectangle>();
    foreach (Button wheel in wheels)
    {
        recWheel.Add(wheel, new Rectangle(wheel.Left, wheel.Top, 23, 23));
            wheel.BackColor = defcolor;
    }
    var hits = recWheel.Where(re => recWheel.Any(rec => rec.Key != re.Key && re.Value.IntersectsWith(rec.Value)));
    foreach (var hit in hits)
    {
        hit.Key.BackColor = Color.Red;
    }
}

Я написал этот код. Я хочу поразить каждый объект, и когда объект поражает, я хочу генерировать случайное значение.

Если я напишу здесь случайный код генерации, таймер генерирует слишком много значения при попадании. Я хочу, чтобы один удар по одному значению. каждый удар будет генерировать одно значение.

foreach (var hit in hits)
{
    //here I wrote generate code
    hit.Key.BackColor = Color.Red;
}

Я этого не делал. Можете ли вы помочь мне в этом?

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