У меня есть спрайт с телом. Я хотел бы переместить спрайт по пути. Я попытался сделать это с помощью PathModifier, и спрайт перемещается как следует, но его тело не соответствует позиции спрайтов.
Могу ли я переместить спрайт и тело вместе? Мне действительно нужно вычислять скорости для пути и применять их к объекту тела, потому что это кажется довольно сложным?
Спрайт инициализируется так
...
this.sprite = new Sprite(this.x, this.y, textureRegion);
this.rectangleBody = PhysicsFactory.createBoxBody(
physicsWorld,
this.sprite,
BodyDef.BodyType.StaticBody,
this.fixtureDef);
pPhysicsConnector = new PhysicsConnector(this.sprite, rectangleBody, true, false);
physicsWorld.registerPhysicsConnector(pPhysicsConnector);
scene.attachChild(this.sprite);
, а затем переехал с этим кодом
Shape shape = entity.getShape();
Float[] reverseXPath = ArrayUtils.clone(xPath.toArray(new Float[xPath.size()]));
ArrayUtils.reverse(reverseXPath);
Float[] reverseYPath = ArrayUtils.clone(yPath.toArray(new Float[yPath.size()]));
ArrayUtils.reverse(reverseYPath);
SequenceEntityModifier oneSequence = new SequenceEntityModifier(
new PathModifier(
duration,
new PathModifier.Path(
ArrayUtils.toPrimitive(xPath.toArray(new Float[xPath.size()])),
ArrayUtils.toPrimitive(yPath.toArray(new Float[yPath.size()]))),
IEaseFunction.DEFAULT),
new PathModifier(
duration,
new PathModifier.Path(
ArrayUtils.toPrimitive(reverseXPath),
ArrayUtils.toPrimitive(reverseYPath)),
IEaseFunction.DEFAULT));
shape.registerEntityModifier(new LoopEntityModifier(oneSequence));