如何使碰撞检测持续一段时间?

时间:2016-07-23 16:54:36

标签: java android android-studio bitmap collision-detection

所以,我有一些碰撞的特殊情况 我需要举一个例子来表达我的观点,所以请听我说! 在我的游戏中我有主要玩家在不同的位置上运行,每个点都有自己的按钮在屏幕上! 我想要做的是:当玩家在现场时,如果按下按钮的同时它仍然触及现场,那么你就通过了!
如果没有按下按钮,你就输了。
我做了所有这一切,没关系!,
但我的问题是我的碰撞只检测到第一个碰撞像素!因此,如果您在现场中间或结束时按下按钮,它将无法工作! 我知道这可能很简单,但请我帮忙!!
我的碰撞方法:

 public boolean collision(GameObject a, GameObject b)
{
    if(Rect.intersects(a.getRectangle(), b.getRectangle()))
    {
        return true;
    }
    return false;
}

 if(collision(helobaby.get(i), player))
            {
                helobaby.remove(i);
                enemykilled.add(new Death(BitmapFactory.decodeResource(getResources(), R.drawable.
                        helobabyultimate), player.width + 125, 210, 220, 180, player.getScore(), 12));

                if(bbypressed) {

                    missiles.remove(i);

                    killed.add(new Death(BitmapFactory.decodeResource(getResources(), R.drawable.
                            babykilled), player.width + 155, 130, 233, 233, player.getScore(), 5));

                    killed.add(new Death(BitmapFactory.decodeResource(getResources(), R.drawable.
                            rebaby), player.width + 100, 250, 233, 233, player.getScore(), 14));

                    killed.get(i).getAnimation().setDelay(50);
                }
                break;
            }  

如果您需要更多信息,请询问。

1 个答案:

答案 0 :(得分:0)

尝试做:

a.getRectangle().overlaps(b.getRectangle);

如果你这样做,它将检查" a"的矩形。重叠" b"的矩形,在他的总面积中,而不仅仅是x和y像素

(抱歉我的英文)