我想在播放加载屏幕时生成一些文件。
我尝试使用Thread但它似乎不起作用。它先运行我的线程,然后在libgdx运行render()之前完成线程。
这是我的代码的工作方式: 在我的GameScreen类中:
private GenerateMap generateMap;
private Thread generate;
在我的gameScreen()中:
this.game = game;
MapChars.setDimensions(100, 100);
generateMap = new GenerateMap(10);
generate = new Thread(generateMap);
generate.start();
camera = new OrthographicCamera(240, 400);
camera.position.set(camera.viewportWidth/2, camera.viewportHeight/2, 0);
camera.update();
sideCam = new OrthographicCamera();
sideCam.setToOrtho(true, camera.viewportWidth, camera.viewportHeight);
sideCam.update();
shapeRenderer = new ShapeRenderer();
和我的渲染()
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
size += delta;
if(size >= 5)
size = 0;
if(!generateMap.isComplete()) {
shapeRenderer.setProjectionMatrix(sideCam.combined);
shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
shapeRenderer.setColor(Color.GREEN);
shapeRenderer.circle(50, 50, 10*size);
shapeRenderer.end();
}
有没有办法在同一时间渲染和穿线?
编辑:
这就是我的GenerateMap类的工作原理:
private void generate() {
complete = false;
// Do The file Generation...
complete = true;
}
public boolean isComplete() {
return complete;
}
@Override
public void run() {
generate();
}
答案 0 :(得分:0)
我发现我的线程退出只需要大约0.03秒。 所以看起来好像什么也没发生过。
当我将时间段延长到大约10秒时,线程正常工作!