【问题标题】:How can I apply gravity on multiple CraftyJS components?如何在多个 CraftyJS 组件上应用重力?
【发布时间】:2018-05-04 07:30:54
【问题描述】:

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

【问题讨论】:

    标签: javascript craftyjs


    【解决方案1】:

    使用添加到任何需要此功能的单个组件。所以你可以调用this.gravity("Platform"),然后对任何可以站立的组件都要求它:

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

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

    这种方法的一个优点是,当我们创建玩家可以站立的新类型的东西时,我们不必在玩家对象中扩展列表——我们只需将“平台”组件也添加到它们.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-15
      • 2019-02-18
      • 2020-01-09
      • 2020-11-22
      • 1970-01-01
      • 2021-10-02
      相关资源
      最近更新 更多