1

我想做一个像这样的涂鸦跳跃,我为玩家创建两个身体,一个为平台创建一个,但不是在平台身体上弹跳,玩家可以在身体的 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]);
    }

}

如果您需要更多代码,请告诉我,但我认为问题可能就在那里。

4

1 回答 1

1

正如您在评论中所说,并不是玩家的身体被移动了,而是您单独移动了精灵;-)

通过传感器事件移动玩家,你可以使用类似的东西

playerBody.setLinearVelocity (float vX, float vY)

x 值取决于您的传感器,y 值应该类似于您的跳跃速度恕我直言

那么你就不需要再移动精灵了,因为它会随着身体的移动而移动

于 2013-07-12T17:00:20.723 回答