我一直試圖使用MouseJoint在用戶觸摸的任何地方移動一塊。但這件作品受到關節的影響,表現奇怪,從未達到過這一點。這是代碼(x和y已經轉換爲「物理」單位):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錨點,正如我所提到似乎是「奇怪的行爲」使身體在建立點周圍(物體寬度的兩倍軌道)吸引,就好像錨點位於體外(六角形,btw)一樣。但是我在libgdx中看不到任何方式。
有人知道我在做什麼錯嗎?先謝謝你!