我正在进行类似游戏的生存,我有两种类型的碰撞,1是玩家的敌人和敌人的子弹。我也有一个健康栏,由于某些原因,在移除了picbox之后,健康状况仍然会像敌人与玩家互动一样下降。
private void checkbulletcollsion()
{
for (int i = 0; i < bulletlistupright.Count; i++)
{
for (int u = 0; u < infectedlistdownleft.Count; u++)
{
if (bulletlistupright[i].Bounds.IntersectsWith(infectedlistdownleft[u].Bounds))
{
this.Controls.Remove(infectedlistdownleft[u]);
this.Controls.Remove(bulletlistupright[i]);
}
}
}
}
这是子弹碰撞代码的一个区块(所有8个方向的所有代码都相同)
for (int i = 0; i < infectedlistupright.Count; i++)
{
if (infectedlistupright[i].Bounds.IntersectsWith(picplayer.Bounds))
{
infectedcount6 = 0;
if (infectedcounter % 15 == 0)
{
health--;
}
infectedcounter++;
}
}
这是敌人和玩家之间碰撞的代码
答案 0 :(得分:1)
即使您已删除了UI控件,也未将其从infectedlist*
数组中删除。