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.