当前位置: 首页 > 知识库问答 >
问题:

碰撞不能正常工作?

柯树
2023-03-14

我正在做一个类似生存的游戏,我有两种类型的碰撞,一种是玩家的敌人,另一种是敌人身上的子弹。我也有一个健康栏,由于某些原因,在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++;
    }                
}

这是敌方与玩家碰撞的暗号

共有1个答案

端木承业
2023-03-14

即使您已经删除了UI控件,您也没有将其从感染列表*数组中删除。

 类似资料:
  • 我正在用pygame和数学模块用python编写一个游戏。我写了这些代码来进行碰撞检测(我制造了5个障碍物,我想让我的玩家与之碰撞),但问题是在玩游戏的过程中,有时有效,有时无效。 这些是我定义的碰撞函数 在while循环中 请告诉我哪里做错了。

  • 所以基本上在过去的一个半年龄里,我一直试图让这个盒子家伙(球员)当他与另一个盒子碰撞时,他停止向他与盒子碰撞的方向移动。它有点成功,但在看似随机的时刻,如果我向上移动并击中玩家左侧的盒子,它可能会溅入与之碰撞并飞下来的盒子。每个方向都是一样的。 checkCollision方法每秒调用60次。getBounds(l/r/u/d)函数只返回与字母对应的左、右、上(上)或下(下)侧的矩形。Id就是玩家

  • 问题内容: 我正在开发一种游戏,其中用户必须击打高速球。为了击球,我使用旋转关节将一个矩形物体与演员连接在一起,并使它的马达以指定速度(马达速度)旋转。现在一切都非常完美,但是当球的速度很高时,它绕过了矩形车身。使用碰撞列表器,我发现发生了碰撞,但是碰撞后球没有被反射。因为只有在球高速运转时才会发生这种情况,所以要碰撞的物体的密度是bcoz。还是它的旋转关节马达?我在这里想念什么吗? 这是两个主体

  • 我想散列一个内部帐号,并将结果用作帐户记录的唯一公共标识符。标识符限制为40个字符。我有大约250条具有唯一帐号的记录。 什么不太可能导致碰撞。 < li >取账号SHA-256哈希的SHA-1。 < li >取账号的SHA-256,挑出40个字符。

  • 我正试图在按下某个按钮时弹出一个警报对话框。我首先使用了Android Developer的示例代码而不是'这不起作用,所以我根据在这个站点上发现的情况进行了更改,但是现在我的程序在按下按钮后被迫停止。 就你的知识而言,这是在第二个不同于主要的活动中完成的。不确定这是否重要.... ‘ 碰撞日志:“03-25 19:34:24.373:E/AndroidRuntime(18828):致命异常:ma

  • 2,错误{org.apache.directory.server.LDAP.ldapserver}-ERR_171无法将LDAP服务(10,389)绑定到服务注册表。java.net.BindException:已在使用的地址 请帮忙谢谢 --------提示------------------- JAVA_HOME环境变量设置为/opt/java CARBON_HOME环境变量设置为/mnt/1