我看过很多关于如何在libgdx中添加插入式广告的教程。但它们都使用构造函数传递接口。
我已经创建了我的改变屏幕的游戏。我的类是:(在AndroidLauncher:Initialize(newgamechanger(),config)中)
游戏改变者扩展游戏。。。(设置屏幕主菜单)----
实现屏幕的主菜单,并具有传入Gamechanger的构造函数。。。(设置屏幕MyGDXGame)--
MyGDXGame,实现屏幕和构造函数,通过Gamechanger-
(我需要在MyGdxGame和end之间显示广告)
结束实现屏幕,并在Gamechanger中传递构造函数
有没有一种方法可以不使用构造器在两个屏幕之间添加广告,或者有其他方法?
请回应?抱歉,任何代码和语法错误。谢啦
这是我的Android启动器:
公共类Android启动器扩展Android应用{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
initialize(new Gamekeeper(),config);
}
}
这是我的GameKeeper类,它扩展了游戏:公共类GameKeeper扩展了游戏{
public SpriteBatch batch;
@Override
public void create(){
batch = new SpriteBatch();
this.setScreen(new MainMenu(this));
}
@Override
public void render(){
super.render();
}
@Override
public void dispose(){
batch.dispose();
}
}
这是我的主菜单类,它实现了屏幕:
protected MainMenu(Gamekeeper gam) {
game = gam;
batch = new SpriteBatch();
Gdx.input.setInputProcessor(this);
}
public void render(float delta) {
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
backgroundSound.setLooping(true);
backgroundSound.play();
backgroundSprite.draw(batch);
titleFont.draw(batch, title, playButton.getX(), Gdx.graphics.getHeight() - 100);
scoreFont.draw(batch, "Top Score: " + score, Gdx.graphics.getWidth() / 3 - 20, Gdx.graphics.getHeight() / 2 + 30);
playButton.draw(batch);
batch.end();
}
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
if(play.contains(screenX,screenY)){
buttonClick.play();
backgroundSound.stop();
mainTheme.setLooping(true);
mainTheme.play();
play.setPosition(-500,-500);
game.setScreen(new MyGdxGame(game));
}
return true;
}
其他的班级大多是相似的
通过实现接口添加初始广告不是问题。在核心项目文件夹中创建接口文件。
public interface PlayServices
{
....//some other playservices methods;
public void showOrLoadInterstital();
}
在AdnRoid启动器中。java类实现创建的PlayServices接口。
public class AndroidLauncher extends AndroidApplication implements PlayServices {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
adView = new InterstitialAd(this);
adView.setAdUnitId(YOUR ID OF ADMOB);
adView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
//all of these toasts added for the debug reason, after successfully
//implementing method you can remove them
Toast.makeText(getApplicationContext(), "Finished Loading Interstitial", Toast.LENGTH_SHORT).show();
}
@Override
public void onAdClosed() {
Toast.makeText(getApplicationContext(), "Closed Interstitial", Toast.LENGTH_SHORT).show();
}
});
requestNewInterstitial();
initialize(new Gamekeeper(this),config);
}
@Override
public void showOrLoadInterstital() {
try {
runOnUiThread(new Runnable() {
public void run() {
if (adView.isLoaded()) {
adView.show();
requestNewInterstitial();
Toast.makeText(getApplicationContext(), "Showing Interstitial", Toast.LENGTH_SHORT).show();
} else {
AdRequest interstitialRequest = new AdRequest.Builder().build();
adView.loadAd(interstitialRequest);
Toast.makeText(getApplicationContext(), "Loading Interstitial", Toast.LENGTH_SHORT).show();
}
}
});
} catch (Exception e) {
}
}
}
然后在你的核心java文件中,你需要处理PlayServices。
public class Gamekeeper extends Game{
public static PlayServices playServices;
public Gamekeeper (PlayServices playServices){
this.playServices = playServices;
}
}
因此,在您的游戏中,无论何时您想要调用广告,请使用以下命令:
Gamekeeper.playServices.showOrLoadInterstital();
就这些。只是别忘了做些适当的事情:
1.下载Google Play服务。
2.包括并参考Google Play服务库项目。
3.修改清单。
问题内容: 大家好,我仍在从事这个libgdx项目的工作,我试图找出将屏幕切换到游戏屏幕的最佳方法。现在,当单击一个按钮时,我需要它来切换到游戏屏幕。我已经看到了一些扩展游戏类的实现方式,但是我不确定这里最好的方法是什么。如果您看到一些可以改进的代码,请告诉我。 这是主要的应用程序类: 问题答案: 这就是我始终执行屏幕切换的方式: 首先,主类需要扩展Game(From ),然后您需要具有一个新的t
大家好,我仍然在做这个libgdx项目,我正在努力找出最好的方法来改变我的游戏屏幕现在,当一个按钮被点击时,我需要它转换到游戏屏幕。我见过一些扩展game类的实现,但我不确定从这里开始最好的方法是什么。如果你看到一些可以改进的代码,请让我知道。 以下是主要的应用程序类:
我试图改变Libgdx屏幕之间的动画。我想写我的自定义动画(淡入淡出等)。有人能给我个线索吗?我似乎在Libgdx代码中找不到转换的实现。
在libGDX中切换屏幕似乎有问题。它会切换到游戏屏幕,但不会切换回主屏幕,也不会切换到屏幕上的游戏。我的游戏课: 我的GameScreen类(实现屏幕): 这就是我如何更改屏幕(不工作): 你可以在这里找到全部来源。
我的应用程序不能显示间质。如果我使用测试设备ID运行应用程序,它会显示谷歌的间质测试窗口。但是没有测试设备ID,它什么也不会显示。我做了相同的步骤,比如整合smart_banner。我的应用程序显示smart_banner,但没有显示间质。可能我使用了错误的类......也存在间质类,但我使用了AdView类。我不知道有人知道在libgdx中包含间质的好教程吗?
我有以下项目:https://github.com/glusk2/sprouts 我尝试将添加到根目录文件中的整个项目中,如下所示: