Как я могу применить гравитацию к нескольким компонентам CraftyJS? - PullRequest
0 голосов
/ 03 мая 2018

У меня есть три компонента: Ground, Block и Player. Я хочу, чтобы игрок перестал падать при контакте с сущностями Ground и Block. Я пробовал this.gravity("Ground, Block"); и this.gravity("Ground", "Block");, но первый отключает гравитацию на обоих компонентах, а второй включает гравитацию для первого аргумента.

1 Ответ

0 голосов
/ 04 мая 2018

Используйте один компонент, который добавляется к любому, который нуждается в этой функции. Таким образом, вы можете вызвать this.gravity("Platform"), а затем потребовать его для любых компонентов, на которые можно установить:

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

Вам даже не нужно предоставлять конкретное определение для «Платформы», поскольку в этом случае оно просто используется в качестве компонента маркера.

Преимущество этого подхода состоит в том, что, поскольку мы создаем новые типы вещей, на которых игрок может стоять, нам не нужно расширять список в объекте игрока - мы просто добавляем к ним также компонент "Платформа" .

...