我想用libGdx做一个游戏并使用MVC模式。我有一个我的游戏模型,我打算一直在运行,而不是从应用程序的渲染方法。正因为如此,我在我的课上完成了这个任务,从libgdx继承了Game: 首先,我将连续渲染设置为false,并调用渲染方法,我使用我的游戏屏幕作为模型的侦听器。渲染方法没有绘制任何东西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();
} ...
在我的模型我只是想一个简单的循环,其中在最后我解雇一个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()
甚至触发我的调试打印?