[]关于intersects碰撞的疑问

以前用starling-as3.0,碰撞可以这么写,里面的bounds即为图片最大矩形框,直接获取其属性:
if(imageA.bounds.intersects(imageB.bounds))
{
 trace("撞到了");
}
在layaAir中也找到了intersects方法,不过用法好像不太一样,public function intersects(rect:Rectangle):Boolean
 
问题一:是不是也是这样去用?if(rectangleA.intersects(rectangleB))
问题二:如果是这样去用,那么是不是每一个image对象都要创建一个相应的rectangle,并把image.setBounds(rectangle),那么上面if里的应该怎么写呢?实现两个image的碰撞判断
问题三:image.setBounds(rectangle)之后,当我rectangle.setTo(x,x,x,x)是不是也动态影响了image的碰撞区域?
问题四:这个rectangle需要不需要添加到显示列表才能实现碰撞?
问题五:有没有更简便的碰撞方式?不满足于两个image碰撞,也可能是skeleton和image碰撞
 
问题比较多,主要问题一和问题二不确定,不然可以自己试,还请一一解答,谢谢。
已邀请:

cuixueying

赞同来自:

以上的问题请参考下面代码示例,如果还有不明白的我们再沟通!
var sp1:Sprite=new Sprite();
sp1.graphics.drawRect(0,0,200,400,"#FF0000");
Laya.stage.addChild(sp1);

var sp2:Sprite=new Sprite();
sp2.graphics.drawRect(0,0,300,400,"#0000FF");
sp2.pos(100,100);

if(sp1.getBounds().intersects(sp2.getBounds()))
{
trace("相交了");
}
发布如下:
 

要回复问题请先

商务合作
商务合作