检测两个位图的命中

时间:2014-04-20 15:57:22

标签: android

嘿,我正在做一个你是宇宙飞船的游戏,到目前为止,我已经让宇宙飞船落在了你身上 敌人摔倒在屏幕的顶部(我已经说过,如果子弹击中了敌人,你就得到分数)

但我有一个问题,我坚持了2天已经问题是检测太空船和敌人击中(他们互相撞击) 当他们互相击打时,它们会起作用,但当它们彼此相距很远时......

点击检查的代码是

if(invaders.getx0()-(iwidth/2)>=this.x-(pwidth/2)&&invaders.getx0()+iwidth<=this.x+pwidth&&invaders.gety0()+iheight>this.y&&invaders.gety0()<=this.y) {
    invaders.setbitmap(1);
}

它检查敌人0是否击中了宇宙飞船 iwidth是敌人的位图宽度 iheight是敌人的位图高度 pwidth是太空船位图宽度 pheight是太空船位图高度

this.x和this.y是宇宙飞船x和y invaders.getx0和invaders.gety0是敌人x和y

和invaders.setbitmap()是设置生命 请帮助我谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用Rect来检测交叉点。例如,您可以使用Rect来描述屏幕上对象的位置和大小,如下所示:

Rect rect1 = new Rect(0, 0, 100, 10);
Rect rect2 = new Rect(20, 0, 10, 10);

如果您想检查它们是否与您相交,请拨打intersect

if(rect1.intersect(rect2)) {
    // Rectangles intersect  
} else {
    // Rectangles don't intersect
}