/*******************************************************************************
* Copyright 2015 See AUTHORS file.
* <p/>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p/>
* http://www.apache.org/licenses/LICENSE-2.0
* <p/>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package com.mygdx.game;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Camera;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.badlogic.gdx.utils.viewport.FitViewport;
import com.badlogic.gdx.utils.viewport.Viewport;
import com.mygdx.game.gdxkit.LoadableGdxScreen;
import com.mygdx.game.gdxkit.LoadingGdxScreen;
/** @author davebaol */
public class LoadingGameScreen extends LoadingGdxScreen<GdxDemo3D> {
private static final float PROGRESS_BAR_WIDTH = GdxDemo3D.WIDTH / 3f;
private static final float PROGRESS_BAR_HEIGHT = GdxDemo3D.HEIGHT / 20f;
private ShapeRenderer shapeRenderer;
private Viewport viewport;
private Camera camera;
public LoadingGameScreen (GdxDemo3D game, LoadableGdxScreen<GdxDemo3D> nextScreen) {
super(game, nextScreen);
}
@Override
public void resize (int width, int height) {
viewport.update(width, height);
}
@Override
public void show () {
camera = new OrthographicCamera();
camera.position.set(GdxDemo3D.WIDTH * .5f, GdxDemo3D.HEIGHT * .5f, 0);
camera.update();
viewport = new FitViewport(GdxDemo3D.WIDTH, GdxDemo3D.HEIGHT, camera);
shapeRenderer = new ShapeRenderer();
}
@Override
public void renderProgress (float delta, float progress) {
Gdx.gl.glClearColor(Color.BLACK.r, Color.BLACK.g, Color.BLACK.b, Color.BLACK.a);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
shapeRenderer.setProjectionMatrix(camera.projection);
shapeRenderer.setTransformMatrix(camera.view);
shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
float x = (GdxDemo3D.WIDTH - PROGRESS_BAR_WIDTH) / 2;
float y = (GdxDemo3D.HEIGHT - PROGRESS_BAR_HEIGHT) / 2;
float k = 4;
shapeRenderer.setColor(Color.WHITE);
shapeRenderer.rect(x - k, y - k, PROGRESS_BAR_WIDTH + k * 2, PROGRESS_BAR_HEIGHT + k * 2);
shapeRenderer.setColor(Color.BLUE);
shapeRenderer.rect(x, y, PROGRESS_BAR_WIDTH * progress, PROGRESS_BAR_HEIGHT);
shapeRenderer.end();
}
@Override
public void dispose () {
shapeRenderer.dispose();
}
}