저는 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);
로
아마,'/stage.draw();'주석 처리를 해제하십시오 :) – Pavel
예 알아요! 그러나 내가 풀고 싶은 문제는 무대를 그리는 것과 관련이 없다 : D! –
javaw.exe에서 오류가 발생 했습니까? –