физика атома - столкновение статических тел - PullRequest
0 голосов
/ 09 ноября 2018

Я использую дополнительный компонент физики кадра и пытаюсь обнаружить столкновение между двумя статическими телами.

Вот мой кодовый блок - https://codepen.io/nirajupadhyay11/pen/gQraNq

Однако я не уверен, почему он не работает.

Вот код -

    <script src="https://aframe.io/releases/0.8.2/aframe.min.js"></script>
    <script src="https://unpkg.com/aframe-animation-component@^4.1.2/dist/aframe-animation-component.min.js"></script>
    <script src="https://cdn.rawgit.com/donmccurdy/aframe-physics-system/v3.1.2/dist/aframe-physics-system.min.js"></script>
    <script src="https://unpkg.com/aframe-physics-extras@0.1.2/dist/aframe-physics-extras.min.js"></script>

<a-scene physics="gravity: 0">

<a-entity id='ball' position="0 1 -3" material="color:green;" geometry="primitive:sphere; radius: 1;" static-body physics-collider="ignoreSleep: true"  animation="property: position; dur: 1500; easing: linear; to: 5 1 -3; dir:alternate; easing: easeInSine; loop:true">
</a-entity>

<a-plane color='grey' static-body rotation="-90 0 0" width="100" height="100"></a-plane>

<a-entity id='ball2' position="3 1 -3" material="color:red;" geometry="primitive:sphere; radius: 1;" static-body physics-collider="ignoreSleep: true"></a-entity>

</a-scene>

Может ли кто-нибудь помочь, пожалуйста?

1 Ответ

0 голосов
/ 11 ноября 2018

Кажется, работает. physics-collider обеспечивает событие collisions, которое генерируется, когда оба статических тела сталкиваются друг с другом.

Если вы добавите прослушиватель событий

// var obj = one of the static bodies
obj.addEventListener("collisions", (e)=>{
  // collision!
})

Проверьте это здесь .


Если вы ожидаете фактического столкновения, когда одна из сфер улетает, то установите

physics-collider="ignoreSleep: false"

Атрибут ignoreSleep - это флаг, который отвечает за пробуждение спящих тел ( docs )

...