libgdx を使用してゲームを開発しています。リソースは AssetManager で管理されます。
Libgdxに示されているように、テクスチャなどのマネージド OpenGL リソースを再読み込みする必要があります。
そのため、私の ApplicationListener # resume () メソッドで、ロード画面に切り替えて AssetManager # update () を再度呼び出します。
現在、いくつかの広告を実装しています。
私が抱えている問題は、インタースティシャル広告を表示する場合です。この広告を閉じてゲームに戻ると、再びロード画面が表示されて時間がかかります。
(このガイドに従って、Ads を Libgdx Android コードに統合しました: Libgdx ads )
何か案は?ありがとう!!
これは私のコードです:
public class MyGame extends Game implements InputProcessor {
public Assets assets;
public SpriteBatch sb;
public Screen ScrSplash;
public Screen ScrLoading;
public Screen ScrMainMenu;
public IActivityRequestHandler myRequestHandler;
public GamPrincipal(IActivityRequestHandler handler) {
myRequestHandler = handler;
}
@Override
public void create() {
sb = new SpriteBatch();
ScrSplash = new ScrSplash(this, sb);
ScrLoading = new ScrLoading(this, sb);
ScrMainMenu = new ScrMainMenu (this, sb);
assets = new Assets();
setScreen(ScrSplash);
}
//====
public class ScrMyScreen implements Screen, InputProcessor{
private MyGame game;
private OrthographicCamera camara;
private SpriteBatch sb;
private Sprite sprBackground;
//…more…//
public ScrMyScreen(MyGame game, SpriteBatch sb) {
this.game = game;
this.sb = sb;
}
@Override
public void render(float delta) {
sb.begin();
sprBackground.draw(sb);
///
//…more…//
sb.end();
}
@Override
public void resize(int width, int height) {
}
@Override
public void show() {
sprFondo = game.assets.sprBackground;
sprLblTitle = game.assets.sprTitle;
//…more…//
//**************Show Ads*******************
game.myRequestHandler.showAds(true);
}
@Override
public void hide() {
dispose();
}
@Override
public void pause() {
}
@Override
public void resume() {
//Show loading screen
game.setScreen(game.ScrLoading);
}
@Override
public void dispose() {
//Call Dispose assets method
}
//===
public class ScrLoading implements Screen {
private MyGame game;
private Sprite sprBG;
private OrthographicCamera camera;
private SpriteBatch sb;
//…
public ScrLoading(GamPrincipal juego, SpriteBatch sb) {
this.game = game;
this.sb = sb;
}
@Override
public void render(float delta) {
if(Recursos.manager.update()) {
game.setScreen(game. ScrMyScreen);
}
sb.begin();
sprBG.draw(sb);
//…more… (draw text : “loading…” )
//
sb.end();
}
@Override
public void resize(int width, int height) {
}
@Override
public void show() {
texture = new Texture("data/images/bg.png");
sprBG = new Sprite (texture);
Assets.manager.update();
}
@Override
public void hide() {
dispose();
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void dispose() {
//Call Dispose assets method
}