AndEngine Box2D - прямоугольное тело превращается в линию?
Я хочу сделать каракули, как прыжок, я создаю два тела, одно для игрока и одно для платформы, но вместо того, чтобы подпрыгивать на теле платформы, игрок может прыгать по всей линии в координатах Y тела. Не знаю почему.
private void creerPlateformes(int n)
{
int pX[] = new int[n];
int pY[] = new int[n];
pX[0] = CAMERA_WIDTH/ 2-60;
pY[0] = 780;
for (int i=0;i<n;i++)
{
if (i!=0)
{
final Random r = new Random();
pX[i] = r.nextInt(464-16)+16;
pY[i] = pY[i-1]-r.nextInt(200-100)+100;
}
plateforme[i] = new Sprite(pX[i], pY[i], mPlateformeTextureRegion, getVertexBufferObjectManager());
plateforme[i].setScale(1);
plateforme[i].setUserData("plateforme");
final FixtureDef PLATEFORME_FIX = PhysicsFactory.createFixtureDef(0.0f, 0.0f, 0.0f);
plateformeBody[i] = PhysicsFactory.createBoxBody(physicsWorld, plateforme[i], BodyType.StaticBody, PLATEFORME_FIX);
plateformeBody[i].setUserData("plateforme");
scene.attachChild(plateforme[i]);
}
}
Скажите, если вам нужно больше кода, но я думаю, что проблема может быть там.
1 ответ
Решение
Как вы сказали в комментариях, дело не в том, что тело игроков было перемещено, вместо этого вы переместили только спрайт;-)
перемещая плеер по датчику события, вы можете использовать что-то вроде
playerBody.setLinearVelocity (float vX, float vY)
со значением х в зависимости от вашего датчика, значение у должно быть что-то вроде вашей скорости прыжка imho
тогда вам больше не нужно перемещать спрайт, так как он будет перемещаться при движении тел