2015-05-30 2 views
0

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

Однако, похоже, я не могу заставить тело-импульсный отклик работать только для данных тел, а края (реакция тела-импульса не применима к методу, по-видимому?), Поэтому теперь тела сталкиваются с другими неподвижными телами хотя я тоже их не хочу.

Как исправить эту проблему?

Спасибо!

ответ

0

Я нашел возможное решение:

Поведение тела импульсного отклика работает на все коллизии в данном канале. Вместо того чтобы пытаться ограничить это поведение конкретными телами с помощью applyTo (органов), вы можете изменить канал, о котором сообщается о столкновении, и дать этому каналу в качестве входа для поведения тела-импульса-ответа.

(неполное) Пример:

Phyiscs(function(world) { 
    var viewportBounds = Physics.aabb(0, 0, viewportWidth, viewportHeight); 

    world.add(Physics.behavior('edge-collision-detection', { 
     channel: 'collisions-edge:detected', 
     aabb: viewportBounds, 
     restitution: 0.7, 
     cof: 1 
    })); 

    world.add(Physics.behavior('body-impulse-response', { 
       check: 'collisions-edge:detected' 
    })); 

    /* You can now add a body-collision-detection behavior with the default 
    * collisions:detected (or a custom name) channel, and the 
    * body-impulse-response added above won't respond to these collisions. 
    */ 
}); 

Если у вас есть другое/лучшее решение - пожалуйста, поделитесь!

 Смежные вопросы

  • Нет связанных вопросов^_^