gpt4 book ai didi

java - LIBGDX - 访问 Android 包变量

转载 作者:行者123 更新时间:2023-11-30 02:57:22 25 4
gpt4 key购买 nike

我需要通过Core包中的类读取Android包上AndroidLauncher中的一些变量的值。如下,我需要读取插页式变量的值。

Android 上的 AndroidLaucher:

public static int interstital=0;

public int ads() {
// TODO Auto-generated method stub
return interstital;
}

核心上的游戏屏幕:

System.out.println(AndroidLaucher.ads());

我尝试实现一个接口(interface),但它不支持静态方法。如何将AndroidLauncher上这个变量的值返回到Core上的GameScreen?

谢谢

最佳答案

不要使用静态方法,尤其是在 Android 上,创建如下所示的广告界面:

public interface AdsManager {
public void showAds();
public Integer getInterstital();
}

制作一个 Android 实现:

public class AndroidAdsManager implements AdsManager{

private Integer interstital;

public AndroidAdsManager(){
interstital = 0;
}

@Override
public void showAds(){
//Show ads method
}
@Override
public Integer getInterstital(){
return interstital;
}
}

现在在您的 Android 启动器上创建实例并将 java 引用传递给您的游戏:

public class AndroidLauncher extends AndroidApplication {
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
AdsManager androidManager = new AndroidAdsManager();
initialize(new MyGame(androidManager), config);
}
}

最后是你的游戏类:

public class MyGame extends ApplicationAdapter {
private AdsManager adsManager;
public Mygame(AdsManager adsManager){
this.adsManager = adsManager;
}
}

现在您可以在代码中的任何位置使用 adsManager,如果在桌面、Android 或 ios 上实例化,它将使用实现中的方法。

此外,正如评论中提到的:“当使用 LibGDX 并且您想要从特定平台获取信息或控制组件时,请使用接口(interface)。请注意,您可能需要设计它,以便它可以在所有平台上运行平台,即使他们不使用广告。”

关于java - LIBGDX - 访问 Android 包变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36863590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com