나는 일정한 속도로 움직이는 몸체를 가진 스프라이트를 쓰고있다. 그래서 시간 단계에서 다음과 같이 진행됩니다 Box2D에서 방향을 변경할 때 속도를 업데이트하는 방법은 무엇입니까?
const v = body.getLinearVelocity();
v.normalize();
body.setLinearVelocity(v * speed);
는 그럼 난의 mouseClicked 이벤트를 수신하고 싶은 스프라이트 그에 따라 새로운 방향으로 이동합니다.
const point = /* new Point on screen */
const rotation = Math.atan2(point.y - player.y, point.x - player.x);
body.setTransform(body.getPosition(), rotation);
을하지만 내 스프라이트가 새로운 방향으로 켜지지 않습니다 마우스를 클릭 할 때, 그것은 같은 일정한 속도로 이전 방향으로 이동 :
이
내가의 mouseClicked 이벤트 처리기에서 뭐하는 거지입니다 . 몸의 각도가 매 단계마다 바뀌는 것을 볼 수 있습니다. 그것은 단지 새로운 방향으로 나아 가지 않을 것입니다.내 스프라이트를 어떻게 바꿔서 Box2D의 새로운 방향으로 옮길 수 있습니까?
죄송합니다. 나는 아직 새로운 변환에 "빔"을 적용한다는 것을 이해하지 못합니다. 나는 점차적으로 속도로 움직이기를 원할 때'applyForce()'/'applyImpulse()'를 사용하는 것이 낫다는 것을 이해한다. 그러나 나는 그것이 시작과 영원히 멈추지 않거나 시작하는 일정한 속도로 움직이기를 원한다. . 내 문제는 원래 속도를 유지하면서 새로운 방향으로 이동하는 방법입니다. – newguy
아마도 "빔"이라고 말하는 대신 "텔레포트"라고 말해야합니다. body.setTransform'은 몸체를 집어 새 위치에 놓습니다. –