所以我开始用Windows窗体编写代码,并尝试制作一个简单的游戏。 我创建了一个分数标签,希望在发生某些情况时可以对其进行更新。
我以为在将int变量转换为字符串之后,我只需要用标签label.Text纠正运行形式代码中的if语句。
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,那就太好了。