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