嘿,我正在做一个游戏,你是一艘宇宙飞船,敌人正在向你坠落,到目前为止,我已经完成了宇宙飞船的射击,敌人从屏幕顶部坠落(我已经制作了,如果子弹击中敌人,你就会得到分数)
但是我有一个问题,我已经坚持了两天了,这个问题是当飞船和敌人相撞(他们互相相撞)时,它可以检测到,但当他们远离彼此时,它也可以工作。
命中检查的代码是
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是宇宙飞船位图宽度ph8是宇宙飞船位图高度
这个x和这个y是宇宙飞船x和y invaders.getx0而invaders.gety0是敌人x和y
而invaders.setbitmap()是设置生活的请帮我谢谢
发布于 2014-04-21 01:12:48
可以使用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
}https://stackoverflow.com/questions/23184498
复制相似问题