2013-07-09 2 views
1

나는 낙서 점프를하고 싶다. 나는 플레이어와 플랫폼을위한 2 개의 본문을 만들지 만, 플랫폼 바디에서 튀는 대신, 플레이어는 몸의 Y 좌표에서 모든 라인을 뛰어 넘을 수있다. 이유를 모르겠다.AndEngine Box2D - 직사각형 바디를 선으로 변환 하시겠습니까?

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]); 
    } 

} 

더 많은 코드가 필요하면 알려주세요.하지만 문제가 있다고 생각됩니다. 당신이 코멘트에 말했듯

+0

무슨 일이 일어나는지 이해하는 데 어려움이 있습니다. 플랫폼이없는 영역에서 플레이어가 튀는가? Y 위치는 정확하지만 X 위치는 정확하지 않습니다. 그게 문제 야? –

+0

예, 정확하게, 나는 왜 그런지 모르겠습니다 ... –

+0

이것은 단지 추측이지만 Sprite "plateforme [i]"에는 투명한 픽셀이 포함되어 있습니까? 박스 2D에 사용 된 도형의 바운딩 박스는 스프라이트 바운딩 박스와 동일합니다. –

답변

1

, 당신은

같은 것을 사용할 수 있습니다, 그것은 아니다, 플레이어 본체가 이동 한 것을, 대신 당신은 센서 이벤트로 플레이어를 이동 혼자 스프라이트 ;-)

이동 그것이 몸이 움직이는 이동되기 때문에

는 다음, 더 이상 스프라이트를 이동하지 않아도 이럴 당신의 센서에 따라 x 값에

playerBody.setLinearVelocity (float vX, float vY) 

, y 값은 점프 속도 같은 것을해야한다

+0

감사합니다. 내 문제를 해결합니다. 그게 다야! 나는 지루하고 싶지 않지만 조금 문제가 생겼다. 나의 가속도계는 오랫동안 반응하는 것처럼 보인다. 또는 당신이 보는 긴 반응 시간의 종류? LinearDumping을 사용하지만 실제로는 내가 좋아하는 것이 아닙니다. –

+0

흠. 나는이 질문의 범위를 벗어날 것이기 때문에 이것을 다른 질문에 넣으라고한다. 일부 코드를 추가하고 나 또는 일부 사용자가 도움을 시도 할 것입니다 ;-) –

+0

좋아, 그건 그렇고, 정말 고마워요 :) –