我正在用libgdx做一个游戏.我使用AssetManager类来加载资产.当我开始我的游戏时,它需要更多的时间在Android设备上加载资源并在那时显示黑屏.我如何解决这个问题.
那么它会显示一个空白的屏幕.为了解决这个问题,您可以在完成资源加载时渲染内容,并在加载完成后切换到菜单屏幕.
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.assets.AssetManager;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.GLCommon;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import com.shooter.waste.of.a.game.Assets;
import com.shooter.waste.of.a.game.utils.Game;
import com.shooter.waste.of.a.game.utils.Screen;
public class LoadingScreen extends Screen{
public AssetManager manager;
SpriteBatch batcher;
Game game;
OrthographicCamera cam;
TextureAtlas load;
float stateTime;
AtlasSprite bg;
public LoadingScreen(Game game,SpriteBatch batcher) {
super(game);
this.batcher = batcher;
this.game = game;
manager = new AssetManager();
manager.load("data/shoot",TextureAtlas.class);
manager.load("data/b.jpg",Texture.class);
cam = new OrthographicCamera(480, 800);
cam.position.set(480 / 2, 800 / 2,0);
load = new TextureAtlas("data/load");
bg = new AtlasSprite(load.findRegion("loadingscrnbg"));
}
@Override
public void render(float deltaTime)
{
update(deltaTime);
GLCommon gl = Gdx.gl;
gl.glClearColor(0, 0, 1f, 0.1f);
gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
cam.update();
batcher.setProjectionMatrix(cam.combined);
batcher.begin();
batcher.draw(bg, 0, 0);
batcher.enableBlending();
batcher.end();
}
@Override
public void pause() {
// TODO Auto-generated method stub
}
@Override
public void resume() {
// TODO Auto-generated method stub
}
@Override
public void dispose() {
// TODO Auto-generated method stub
}
@Override
public void update(float deltaTime)
{
if(manager.update()) \\ gives true when all assets are loaded
{
Assets.load(manager);
game.setScreen(new GameScreen(game, batcher));
}
}
@Override
public void backKeyPressed() {
// TODO Auto-generated method stub
}
}
Run Code Online (Sandbox Code Playgroud)
一个重要的事情是,它仍然会为那些你想要在加载过程中呈现的精灵显示一个空白屏幕,试图只渲染一些东西而根本没有声音.
希望这能帮到你.