如何在Flash Develop(AS3)上使用Starling将Quad转换为矩形?

时间:2016-03-15 03:13:49

标签: actionscript-3 starling-framework

我希望使用“相交”(来自Starling)来创建碰撞,但我不知道如何将我的Quad“player”和我的Quad“block”转换为Rectangles。 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

Quad包含一个getBounds公共方法,它返回一个新的矩形(如果在第二个参数上传入,则返回更新的矩形),所以:

var playerRect:Rectangle = quadPlayer.getBounds(this);
var blockRect:Rectangle = blockPlayer.getBounds(this);
if (playerRect.intersects(blockRect)) {
   trace("Collision!");
}

现在,我正在使用this,因为我不知道您的显示列表层次结构,并且这不知道您的四边形所在的坐标系,因此请相应调整。

http://doc.starling-framework.org/current/starling/display/DisplayObject.html

  

转换坐标

     

在显示树中,每个对象都有自己的局部坐标系。如果旋转容器,则旋转该坐标系 - 从而旋转容器的所有子项。

     

有时您需要知道某个点相对于另一个坐标系的位置。这就是getTransformationMatrix方法的目的。它将创建一个矩阵,表示一个坐标系中一个点到另一个坐标系的转换。

http://doc.starling-framework.org/current/starling/display/Quad.html

  

getBounds(targetSpace:DisplayObject,out:Rectangle = null):Rectangle   [override]返回一个矩形,该矩形完全包围对象,因为它出现在另一个坐标系中。