我刚刚使用this guide在我的游戏中为Android实施了广告。 它工作正常,我的核心项目中有一个Android Activity实现的接口。
但是我的问题是你需要将这个实现的接口发送到核心项目,然后将它作为参数传递给你的第一个屏幕,你可以在那里使用它,例如:
public MyGdxGame(PlatformSpecific ps) //Android class that handle fb-login and ads
{
this.ps = ps;
}
@Override
public void create ()
{
setScreen(new LoginScreen(this, ps);
}
当我在LoginScreen
中使用fb-login时,这很好,但我希望能够通过调用{在其他屏幕上(在游戏完成后)创建我的广告{1}} - 界面中的方法。
我是否必须继续在所有屏幕之间传递createAd
,以便我可以在屏幕中使用它,这种屏幕很少使用,或者是否有某种方法从我的屏幕进入此界面而不传递它到构造函数?有点像你发起一个对象,例如:
ps
或者LibGdx有一些库可能支持这种情况吗?最糟糕的情况我可以在所有构造函数之间传递private PlatformSpecific ps = new PlatformSpecific();
,但感觉就像一个非常难看的解决方案。
答案 0 :(得分:0)
解决方案1: 将PlatformSpecific存储在全局静态变量中。这允许您访问代码中的任何位置,而无需在每个构造函数中传递它。
解决方案2: 拥有MyPlatformContext类,可以访问PlatformSpecific。然后将此MyPlatformContext对象传递给屏幕构造函数。如果稍后扩展特定于平台的代码,则无需更改屏幕构造函数。只需编辑MyPlatformContextMyPlatformContext类。
伪代码:
class MyPlatformContext {
private FacbookPlatform fb;
private AdmobPlatform admob
FacbookPlatform getFacebook() {
return fb;
}
...
}