如何在多个CraftyJS组件上应用重力?

时间:2018-05-03 13:33:54

标签: javascript craftyjs

我有三个组件,GroundBlockPlayer。我希望玩家在与GroundBlock实体联系时停止摔倒。我尝试了this.gravity("Ground, Block");this.gravity("Ground", "Block");,但前者禁用了两个组件的重力,而后者则为第一个参数启用了重力。

1 个答案:

答案 0 :(得分:0)

使用添加到任何需要此功能的任何组件。因此,您可以调用this.gravity("Platform"),然后将其用于任何可以保留的组件:

Crafty.c("Ground", {
   required: "Platform",
   init: function(){
     // etc   
   }, 
});

您甚至不需要为平台"提供特定的定义,因为在这种情况下它只是用作标记组件。

这种方法的一个优点是,当我们创建玩家可以站立的新类型的东西时,我们不必在玩家对象中扩展列表 - 我们只需添加"平台&# 34;也是他们的组成部分。