所以我在将 scoreloop 集成到我的游戏中时遇到了一些问题。我使用用 c++ 编写的 cocos2dx 并使用 ndk。主应用程序类是从活动而不是从 android.app.application 派生的。在布局中添加一个按钮并使用它来调出记分牌或提交乐谱作品,但它没有连接到互联网。我在这里找到了解决方案:scoreloop support forum或更具体地说
是的,使用 libgdx 似乎是个问题。libgdx 带来了它自己的 Application 类,它实际上是从 Android 的 Activity 派生的,而不是 Application。来自 libgdx 的 helloworld 示例根本没有(Android)应用程序类,这里是如何添加一个:
创建一个扩展 android.app.Application 的新类(不是 com.badlogic.gdx.backends.android.AndroidApplication)
在 AndroidManifest.xml 中找到创建的类的标签和名称作为属性: android:name="YourApplication"
将方法 public void onCreate() 添加到该类并在那里初始化 Scoreloop。
所以接下来我创建了这个:
public class scoreLooped extends android.app.Application{
public void onCreate(Bundle savedInstanceState){
ScoreloopManagerSingleton.init(this, "redacted");
}
public void onTerminate()
{
ScoreloopManagerSingleton.destroy();
}
}
我从我的主要活动类创建这个类,如下所示:
public class wordsweeper extends Cocos2dxActivity implements OnScoreSubmitObserver{
private Cocos2dxGLSurfaceView mGLView;
private static scoreLooped a;
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
wordsweeper.a = new scoreLooped();
//Set the observer equal to an instance of this class
ScoreloopManagerSingleton.get().setOnScoreSubmitObserver(this);
最后一行是它因错误“引起:java.lang.IllegalStateException:必须首先调用 ScoreloopManagerSingleton.init()”而崩溃的地方,所以显然我的 scoreLooped 类没有调用 scoreloopmanager。我曾考虑过使用 scorelooped 类来提交、检索记分牌,但如果不扩展活动,我似乎无法做到这一点。我对java很陌生,所以我可能会遗漏一些明显的东西,所以如果有人能指出我正确的方向,那就太好了。