2013-07-09 4 views
2

저는 Box2D를 처음 사용합니다. 난 그냥 간단한 튜토리얼을 따라하려고 노력하지만, 내 코드 내부를 통합하는 것을 시도하고있다 :Box2D Libgdx 검정색 화면

public void create() { 
    float w = Gdx.graphics.getWidth(); 
    float h = Gdx.graphics.getHeight(); 
    camera = new OrthographicCamera(w, h, 0); 
    camera.position.set(camera.viewportWidth * .5f, camera.viewportHeight * .5f, 0f); 
    camera.update(); 
    batch = new SpriteBatch(); 
    viewSwitcher("GameScreen",null); 
    } 

viewSwitcher에 대한 호출은 새로운 객체를 생성하는를 만듭니다 내 Libgdx 게임을 만들기 시작

새로운 화면 :

public GameScreenController(SomeGame t, String id) { 
    somegame = t; 
    db = t.getDB(); 
    world = new World(new Vector2(0, -20), true); 
    screen = new GameScreen(this); 
    [. . .] 
} 

게임 화면 내부 (화면 클래스를 확장) 내가 렌더링 방법이 있습니다

@Override 
public void render(float delta) { 
    debugRenderer.render(world, camera.combined); 
    world.step(BOX_STEP, BOX_VELOCITY_ITERATIONS, BOX_POSITION_ITERATIONS); 
    stage.act(delta); 
    //stage.draw(); 
} 

마지막으로 Timer는 주기적으로 새 객체를 만듭니다. 이 객체의 생성자 내부에서 bodyDef를 만들었습니다.

public void createBodyLetter() { 
    BodyDef bodyDef = new BodyDef(); 
    bodyDef.type = BodyType.DynamicBody; 
    bodyDef.position.set(200, 200); 
    Body body = controller.getWorld().createBody(bodyDef); 

    PolygonShape dynamicBox = new PolygonShape(); 
    dynamicBox.setAsBox(1.0f, 1.0f); 

    FixtureDef fixtureDef = new FixtureDef(); 
    fixtureDef.shape = dynamicBox; 
    fixtureDef.density = 1.0f; 
    fixtureDef.friction = 0.3f; 
    body.createFixture(fixtureDef); 

    dynamicBox.dispose(); 

} 

결과는 프로그램을 시작할 때 검은 색 화면이됩니다. 문제가있는 곳을 아는 사람이 있습니까?

, 당신이 준 세 번째 매개 변수는

이 링크 http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/OrthographicCamera.html#OrthographicCamera(float에서 자바 독을 확인하기위한 문제를 일으키는 것입니다 다이아몬드 각도

camera = new OrthographicCamera(w, h); 

+0

아마,'/stage.draw();'주석 처리를 해제하십시오 :) – Pavel

+0

예 알아요! 그러나 내가 풀고 싶은 문제는 무대를 그리는 것과 관련이 없다 : D! –

+0

javaw.exe에서 오류가 발생 했습니까? –

답변

0

초기화 카메라 주셔서 감사합니다 float, float)

+1

좋아, 이제 훨씬 나아! 고맙습니다! 나는 새 몸을 즉석에서 추가 할 수 없다는 것도 읽었습니다.이 작업은 세계를 스테핑하기 전에해야합니다 : 바디 추가 -> 세계를 한 단계 밟습니다. 당신이 확인합니까? –

+0

예. 전 세계를 걷기 전이나 후에 시체를 추가 할 수 있습니다. 당신은 네이티브 에러를 줄 것이다 단계주기 동안 시체를 추가 할 수 없습니다. –