Итак, я начал кодировать в формах Windows, и я пытаюсь сделать простую игру.
Я создал метку оценки и хочу, чтобы она обновлялась, если что-то случится.
Я подумал, что мне просто нужно исправить оператор if в коде текущей формы с помощью label.Text после преобразования переменной int в строку.
private void timer1_Tick(object sender, EventArgs e)
{
if (objPos == Position.Up)
{
y -= 50;
if (objSide == Side.Right)
x += spd;
else
x -= spd;
}
else if (objPos == Position.Down)
{
y += 50;
if (objSide == Side.Right)
x += spd;
else
x -= spd;
}
if (y <= 0)
y = 0;
else if (y >= 553 - 80)
y = 553 - 80;
if (x >= 1250)
{
x -= spd;
objSide = Side.Left;
}
else if (x <= 0)
{
x += spd;
objSide = Side.Right;
}
Rectangle r2 = new Rectangle(x, y, 40, 40);
if (r2.IntersectsWith(ln3.Bounds) | r2.IntersectsWith(ln4.Bounds) | r2.IntersectsWith(ln5.Bounds) | r2.IntersectsWith(bb1.Bounds) | r2.IntersectsWith(bb2.Bounds) | r2.IntersectsWith(bb3.Bounds)| r2.IntersectsWith(bb4.Bounds))
{
tmrMoving.Stop();
EndGame End = new EndGame();
End.Show();
this.Hide();
}
if (x == 1250 )
{
spd += 50;
score++;
string s= Convert.ToString(score);
Score.Text = s;
Score.Refresh();
}
Invalidate();
}
Этот код находится в Form.cs формы запущенной игры. В нем есть еще несколько операторов if, меняющих положение объекта, поэтому я ожидал, что это сработает, но это не так. Как мне тогда это сделать?
Редактировать: Написал некоторый дополнительный код. Если кто-то знает, как я могу создать массив графических блоков, чтобы я мог использовать IntersectsWith более эффективно, это будет хорошо.