Используйте один компонент, который добавляется к любому, который нуждается в этой функции. Таким образом, вы можете вызвать this.gravity("Platform")
, а затем потребовать его для любых компонентов, на которые можно установить:
Crafty.c("Ground", {
required: "Platform",
init: function(){
// etc
},
});
Вам даже не нужно предоставлять конкретное определение для «Платформы», поскольку в этом случае оно просто используется в качестве компонента маркера.
Преимущество этого подхода состоит в том, что, поскольку мы создаем новые типы вещей, на которых игрок может стоять, нам не нужно расширять список в объекте игрока - мы просто добавляем к ним также компонент "Платформа" .