Supportable 组件

事件

LandedOnGround
当实体着陆时。此事件是由实体登陆的对象触发的。
LiftedOffGround
当实体剥离时。这个事件是由物体在升空之前站起来触发的。
CheckLanding
实体是否在着陆。当实体将要着陆时触发此事件。第三方可以响应此事件以便允许实体着陆。

检测实体是否与地面发生碰撞的组件。这个组件是由重力组件自动添加和管理的。当实体状态改变时(在地上/从地上起飞)时触发适当的事件。也可以用.ground访问当前的地面实体。

属性

方法

Back to top

.canLand

布尔值 canLand 决定了实体是否能够着陆(例如:或许实体不应该着陆,如果它不坠落)。 Supportable 组件会触发一个 "CheckLanding" 事件.有兴趣的话可以监听这个事件,通过设置 canLand 为 false 可以阻止实体着陆。

例子

var player = Crafty.e("2D, Gravity");
player.bind("CheckLanding", function(ground) {
    if (player.y + player.h > ground.y + player.dy) { // forbid landing, if player's feet are not above ground
        player.canLand = false;
    }
});
Back to top

.ground

访问地面实体(如果它存在的话,它可能是实际的地面实体,或者为null,如果它不存在),获取这个实体是否现在在地上。当地面实体发生变化时,地面实体也可以通过事件获得。

Back to top

.preventGroundTunneling()

this .preventGroundTunneling([Boolean enable])
enable

布尔值,指示是否启用连续碰撞检测;如果省略默认值为true

防止实体在高速下穿过稀薄的地面实体。默认禁用此设置。这是通过近似连续碰撞检测来实现的,这可能会对性能产生负面影响。详情参阅常见问题 FAQ#Tunneling.