【发布时间】:2018-05-04 07:30:54
【问题描述】:
我有三个组件,Ground、Block 和 Player。我希望玩家在与Ground 和Block 实体接触时停止跌倒。我尝试过this.gravity("Ground, Block"); 和this.gravity("Ground", "Block");,但前者禁用了两个组件的重力,后者启用了第一个参数的重力。
【问题讨论】:
标签: javascript craftyjs
我有三个组件,Ground、Block 和 Player。我希望玩家在与Ground 和Block 实体接触时停止跌倒。我尝试过this.gravity("Ground, Block"); 和this.gravity("Ground", "Block");,但前者禁用了两个组件的重力,后者启用了第一个参数的重力。
【问题讨论】:
标签: javascript craftyjs
使用添加到任何需要此功能的单个组件。所以你可以调用this.gravity("Platform"),然后对任何可以站立的组件都要求它:
Crafty.c("Ground", {
required: "Platform",
init: function(){
// etc
},
});
您甚至不需要为“平台”提供特定定义,因为在这种情况下它只是用作标记组件。
这种方法的一个优点是,当我们创建玩家可以站立的新类型的东西时,我们不必在玩家对象中扩展列表——我们只需将“平台”组件也添加到它们.
【讨论】: