2014-04-21 2 views
0

아주 단순한 게임으로 시작 했으므로 모든 신체에 대해 스프라이트 이미지를 만들고 싶지 않습니다. 색상을 다르게 지정하면됩니다. 이 스레드 당으로 LibGDX를 사용하여 Box2d 본문을 채색하는 가장 좋은 방법

은 ShapeRendere하지 아주 좋은 생각이 될 것으로 보인다 그리고 개발을위한 더 : https://github.com/libgdx/libgdx/wiki/Spritebatch,-textureregions,-and-sprite

: When to use ShapeRenderer, Mesh + SpriteBatch, Box2D and Scene2D in Libgdx? 또한

, 색조는 물론 이미지를 필요로 텍스처에 사용 할 수 있습니다

  //Dynamic Body 
     bodyDef = new BodyDef(); 
     //bodyDef.gravityScale 
     bodyDef.type = BodyType.DynamicBody; 
     bodyDef.position.set(camera.viewportWidth/2, camera.viewportHeight/2); 
     body = world.createBody(bodyDef); 
     CircleShape dynamicCircle = new CircleShape(); 
     dynamicCircle.setRadius(10f); 
     FixtureDef fixtureDef = new FixtureDef(); 
     fixtureDef.shape = dynamicCircle; 
     fixtureDef.density = 2.5f; 
     fixtureDef.friction = 0.25f; 
     fixtureDef.restitution = 0.75f; 
     body.createFixture(fixtureDef); 

어떤 아이디어 :

이 나는 ​​색상에 노력하고 하나 개의 시체인가?

+0

당신이 모양을 그리는 방법을 알아 내기 위해 ShapeRenderer의 코드를 사용하고 그것을 합리화 수 있기를 바랍니다가 포함 된 필요합니다. –

답변

2

나는 Sprite directy를 사용하지 말고, 대신 scene2d와 액터를 사용하도록 제안합니다. libgdx wiki는 이미이 작업을 수행하는 방법을 완벽하게 설명합니다.

Actor (또는 Group)를 확장하고 원하는 텍스처를 렌더링하는 클래스를 만들 수 있습니다. 당신 Box2D의 몸을 만들 때

, 당신은

이제() 단계로 Box2D의 세계를 시뮬레이션 한 후, 당신은 단지 세계에서 몸을 반복 할 필요가 setUserData(actor);를 통해 배우로 몸 '사용자 데이터를 설정합니다 getUserData()을 통해 액터에 액세스하고 액터의 위치 및 로타 틴을 바디의 현재 값으로 업데이트하십시오. 위키는 이미이 필요한 전체 루프 ...

이 도움이 ... :)

관련 문제