所以,我有一些碰撞的特殊情况
我需要举一个例子来表达我的观点,所以请听我说!
在我的游戏中我有主要玩家在不同的位置上运行,每个点都有自己的按钮在屏幕上!
我想要做的是:当玩家在现场时,如果按下按钮的同时它仍然触及现场,那么你就通过了!
如果没有按下按钮,你就输了。
我做了所有这一切,没关系!,
但我的问题是我的碰撞只检测到第一个碰撞像素!因此,如果您在现场中间或结束时按下按钮,它将无法工作!
我知道这可能很简单,但请我帮忙!!
我的碰撞方法:
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;
}
如果您需要更多信息,请询问。
答案 0 :(得分:0)
尝试做:
a.getRectangle().overlaps(b.getRectangle);
如果你这样做,它将检查" a"的矩形。重叠" b"的矩形,在他的总面积中,而不仅仅是x和y像素
(抱歉我的英文)