如何检查craftyjs实体是否掉出了crafty区域

How to check whether a craftyjs entity has fallen out of crafty area?

本文关键字:是否 区域 crafty 实体 craftyjs 何检查 检查      更新时间:2023-09-26
 <script>
      Crafty.init(450,350, document.getElementById('game'));
     var sledge=   Crafty.e('Floor, 2D, Canvas, Color')
  .attr({x: 0, y: 250, w: 150, h: 10})
  .color('green');
  var hero =Crafty.e('Canvas, 2D, Image, Twoway, Gravity')
  .attr({x: 0, y: 0, w: 50, h: 50})
  .image("jerry.png")
  .twoway(150)
  .gravity('Floor');
    </script>

例如,在这个例子中,我如何得到一个警告,说最后一个实体,英雄已经离开了crafty初始化为区域?

最简单的方法是比较每帧实体的位置,如下所示:

hero.bind("EnterFrame", function(e) {
    if (hero.x < 0 
     || hero.y < 0 
     || hero.x > Crafty.viewport._width 
     || hero.y > Crafty.viewport._height) {
        // Whatever logic you're wanting
    }
});

假设视口是固定的,但这似乎是问题的本质所暗示的。