我的LibGDX游戏中有Loading \ Logo屏幕和MainMenu屏幕。我想在这些屏幕之间展示一个插页式广告。
我已设法使用以下代码执行此操作,但问题是:在徽标屏幕消失后,主菜单屏幕会短暂显示,然后才会显示广告 - 这就是让我烦恼的原因。
我希望隐藏徽标屏幕,然后显示广告,然后才显示主菜单屏幕(黑屏之间可以正常)。你能告诉我怎么去那里吗?
我的代码现在如下:
主要课程只需启动徽标屏幕:
public class Colorem extends Game {
//...
IActivityRequestHandler h_AndroidActivity;
public void create() {
//init vars...
//set logo screen
this.setScreen(new LogoScreen(this));
}
//...
}
徽标屏幕使用AssetManager加载纹理并加载主菜单屏幕:
public class LogoScreen implements Screen {
private boolean bLoading = false,
bLoadingFinished = false;
public LogoScreen(final Colorem game) {
this.game = game;
// ...
}
@Override
public void render(float delta) {
//draw logo...
//keep loading the resources calling assetManager.update()
if(UI.assetManager.update()) {
game.setScreen(new MainMenuScreen(game));
}
}
}
主菜单类在显示时显示广告:
public class MainMenuScreen implements Screen {
//...
@Override
public void show() {
game.h_AndroidActivity.showInterstitialAd_InGame();
}
}
我也试过从LogoScreen的hide()方法调用Ad,但我仍然无法获得干净的屏幕 - > Ad - >屏幕幻灯片。
答案 0 :(得分:1)
好。您需要在MainActivity中实施AdListener
public class MainActivity extends AndroidApplication implements AdListener
。
这将为您提供5种方法
@Override
public void onDismissScreen(Ad arg0) {
// TODO Auto-generated method stub
}
@Override
public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1) {
// TODO Auto-generated method stub
}
@Override
public void onLeaveApplication(Ad arg0) {
// TODO Auto-generated method stub
}
@Override
public void onPresentScreen(Ad arg0) {
// TODO Auto-generated method stub
}
@Override
public void onReceiveAd(Ad arg0) {
// TODO Auto-generated method stub
}
在LogoScreen中加载所有资源时显示您的InterstitialAdd。现在在上面显示的onDismissScreen(Ad arg0)
方法中显示您的MainMenuScreen。
另外请记住将添加列表器添加到插页式广告添加interstitial.setAdListener(this);
Incase game.setScreen(new MainMenuScreen(game));
在onDismissScreen(Ad arg0)
内不起作用,那么你需要一个布尔值,并在调用onDismissScreen()时使用它来显示mainmenuScreen()。