저는 사용자가 터치 할 때마다 마우스 조인트를 사용하여 피스를 움직이려고했습니다. 그러나 관절에 의해 영향을받는 작품은 이상하게 행동하고 절대로 도달하지 못합니다.MouseJoint가 올바르게 작동하지 않습니다.
MouseJointDef mj_def;
MouseJoint mj = null;
Body mj_gbody;
public void move(float x, float y)
{
if(mj == null)
{
BodyDef mgbd = new BodyDef();
mj_gbody = wrld.createBody(mgbd);
//
mj_def = new MouseJointDef();
mj_def.bodyA = mj_gbody;
mj_def.bodyB = body;
mj_def.collideConnected = true;
mj_def.maxForce = 20.0f * body.getMass();
//mj_def.target.set(x,y);
mj = (MouseJoint)wrld.createJoint(mj_def);
body.setAwake(true);
}
mj.setTarget(new Vector2(x, y));
}
나는 BodyB의 앵커 포인트를 확립 할 수있는 방법을 찾고 있었다, 나는 것 같다 언급 한 '이상한 행동'과 같은 : 이것은 (x와 y가 이미 '물리적'단위로 변환된다) 코드입니다 마치 앵커 포인트가 몸체의 바깥쪽에있는 것처럼 (육각 모양, btw), 확정 된 점 (물체의 너비의 두 배 정도의 궤도)을 중심으로 몸이 움츠 리게 만듭니다. 그러나 나는 libgdx에서 그렇게하는 어떤 방법도 보지 못했다.
내가 뭘 잘못하고 있는지 아는 사람이 있습니까? 미리 감사드립니다.