Я создаю веревку серии Box2D тел со следующим кодом:Box2D LibGDX вопрос Rope
public void create(float length, float ropeLength){
Array<Body> bodies = new Array<Body>();
bodies.add(BodyFactory.createBox(world, position.x, position.y, length, length, BodyType.StaticBody, 0, 0, 0, "RopeMain"));
for(int i = 1; i < ropeLength; i++){
bodies.add(BodyFactory.createBox(world, position.x, position.y - (((length/2)/Core.PPM) * i),
length, length, BodyType.DynamicBody, 0, 0, 0, "RopeBody" + i));
RopeJointDef rDef = new RopeJointDef();
rDef.bodyA = bodies.get(i - 1);
rDef.bodyB = bodies.get(i);
rDef.collideConnected = true;
rDef.maxLength = (length/2)/Core.PPM;
rDef.localAnchorA.set(position.x, -((length/2)/Core.PPM));
rDef.localAnchorB.set(position.x, ((length/2)/Core.PPM));
world.createJoint(rDef);
}
}
Позвольте мне поделиться некоторыми параметрами ...
Для BodyFactory.createBox
это необходимо следующее:
мир, XPOS, YPOS, ширина, высота кузова, плотность, трения, реституция, крепеж пользовательские данные. (длина такой же, так как он использует коробки)
Core.PPM - это пиксели на метр. Также обратите внимание, что позиция делится на PPM в конструкторе.
Вопрос: Почему следующие линии стреляют вправо?
Любая информация очень полезна, и как будет плотность, трение и реституция влияют на веревку? Благодаря!
Абсолютно спасибо! – Luke