2013-07-02 53 views
1

我正在使用MouseJoint拖动对象。但是物体的移动太慢了。LibGDX - Box2D:使用MouseJoint移动没有速度限制的对象

enter image description here

我需要将它们与鼠标的速度移动。目前,我用MouseJointDef这些设置:

MouseJointDef def = new MouseJointDef(); 
def.bodyA = groundBody; 
def.bodyB = hitBody; 
def.collideConnected = true; 
def.target.set(testPoint.x, testPoint.y); 
def.maxForce = 10000.0f * hitBody.getMass(); 
def.frequencyHz=100; 
def.dampingRatio=0; 

这些一个身体:

Body box = world.createBody(def); 
MassData mass = new MassData(); 
mass.mass=100; 
//mass.I=1; What is it??? 
mass.center.set(width/2, height/2); 
box.setMassData(mass); 

我该怎么办?

回答

2

如果你的游戏的宽度和高度过大,像800×480或东西,然后通过40像... 20x12把它....

这是因为Box2D的速度被限制为2个单位。并且你想要的是每个时间步数更多的单位,但是你的屏幕太大以至于无法实现...所以如果你缩短了你的世界,那么速度问题将得到解决。

+1

我的错误是我用'this.cam.setToOrtho(false,Gdx.graphics.getWidth(),Gdx.graphics.getHeight());'在用正确的参数创建相机实例之后! :) 谢谢 – Nolesh