libGdx로 게임을 만들고 MVC 패턴을 사용하려고합니다. 내 게임의 모델은 응용 프로그램의 렌더링 메서드 대신 항상 실행하려고합니다. 이 때문에 나는 libgdx에서 Game을 확장 한 클래스에서 이것을 수행했다 : 먼저 연속 렌더링을 false로 설정하고 렌더링 메소드를 호출한다. 내 gamesscreen을 내 모델의 수신기로 사용하고있다.렌더링 방법에서 아무 것도 그리지 않습니다. Java LibGDX
public class MyGame extends Game {
GameModel model;
GameScreen gs;
@Override
public void create() {
Gdx.graphics.setContinuousRendering(false);
Gdx.graphics.requestRendering();
model = new GameModel();
gs = new GameScreen(this, model);
model.addPCL(gs);
setScreen(gs);
model.runGame();
} ...
내 모델에서는 끝 부분에서 내 gameScreen에 propertyChangeEvent를 실행하는 간단한 루프를 시도하고 있습니다. 다 잘되고, 내 gamescreen 렌더링 메서드를 호출하고 propertychange 제대로 작동하는지 보여주는 인쇄 디버깅이 있습니다. 내 모델의 루프가 끝날 때까지 그냥 모든 것이 그려지는 대신 렌더링 메서드에서 드로잉이 발생해야하는 문제가 발생합니다. 그런 다음 윈도우의 입력이 변경되면 (마우스 나 클릭 등을 움직이면) 렌더링 메소드가 호출되고 드로잉이 이제는 그대로 표시됩니다.
제 GameScreen 클래스에서 아무 것도하지 않는 것 같습니다. Gdx.graphics.requestRendering()
내 debbuggin 지문도 나오지 않습니다. 또한 MyGame 클래스를 사용하여 렌더링 메서드를 트리거하려고 시도했지만 적어도 디버깅 인쇄물을 보여줍니다.
@Override
public void propertyChange(PropertyChangeEvent evt) {
System.out.println("Event recieved");
myGame.render();
//Gdx.graphics.requestRendering();
}
@Override
public void render(float delta) {
System.out.println("mapscreen render beginning: " + delta);
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
// Stuff that should be drawn happens here
}
누군가 내 렌더링 메서드를 호출 할 수는 있지만 실제로는 메서드에서 수행해야한다고 말하고있는 것은 아닙니다. 또한 Gdx.graphics.requestRendering()
도 디버그 인쇄물을 실행하지 않는 이유는 무엇입니까?