0

我正在尝试在我的游戏中实现 Game Center,但我遇到了问题。

这是我的 Main.cs 代码:

namespace iosgame
{       
    public class Application
    {
        [Register ("AppDelegate")]
        public partial class AppDelegate : IOSApplication {

            MainViewController mainViewController;

            public AppDelegate(): base(new Game(new StaticsDatabase(),new StoreDatabase(),new InappPurchase(),new Social(),new MissionsDatabase()), getConfig()) {

            }

            internal static IOSApplicationConfiguration getConfig() {
                IOSApplicationConfiguration config = new IOSApplicationConfiguration();
                config.orientationLandscape = true;
                config.orientationPortrait = false;
                config.useAccelerometer = false;
                config.useMonotouchOpenTK = true;
                config.useObjectAL = true;
                return config;
            }

            //
            // This method is invoked when the application has loaded and is ready to run. In this 
            // method you should instantiate the window, load the UI into it and then make the window
            // visible.
            //
            // You have 17 seconds to return from this method, or iOS will terminate your application.
            //
            public override bool FinishedLaunching (UIApplication app, NSDictionary options)
            {
                base.FinishedLaunching(app,options);
                UIViewController controller = ((IOSApplication)Gdx.app).getUIViewController();
                mainViewController = new MainViewController();
                controller.View.Add(mainViewController.View);



                return true;
            }

            private bool isGameCenterAPIAvailable()
            {
                return UIDevice.CurrentDevice.CheckSystemVersion (4, 1);
            }
        }

        static void Main (string[] args)
        {
            UIApplication.Main (args, null, "AppDelegate");
        }
    }
}

这是 Main.cs 的超类:https ://github.com/libgdx/libgdx/blob/master/backends/gdx-backend-iosmonotouch/src/com/badlogic/gdx/backends/ios/IOSApplication.java

我正在尝试使用此https://github.com/xamarin/monotouch-samples/blob/master/GameCenterSample/GameCenterSample/MainViewController.cs示例,但我在游戏中看不到任何身份验证窗口。我可以看到“欢迎回来,姓名”通知,但在我从游戏中心应用程序注销并重新打开我的游戏后,我看不到任何身份验证窗口。

我该如何解决?

提前致谢

4

1 回答 1

2

只需调用它FinishedLaunching

if (!GKLocalPlayer.LocalPlayer.Authenticated) {
    GKLocalPlayer.LocalPlayer.Authenticate (error => {
        if (error != null) 
            Console.WriteLine("Error: " + error.LocalizedDescription);
    });
}

这应该会显示一个游戏中心“toast”,上面写着“欢迎回来,玩家 1”。

如果这不起作用,这里有一些想法:

  • 确保你已经在开发者门户中设置了一个新的 bundle id,并在你的Info.plist
  • 开始在 iTunes connect 中填写您的应用详细信息(最少是描述、关键字、图标、1 个屏幕截图),并确保启用 Game Center 并将您的新游戏添加到组中
  • 在 Game Center 中使用测试 iTunes 用户登录(在 ITC 中创建),或与您的开发者帐户关联的登录名

PS - 我不担心检查 iOS 4.1,现在只针对 iOS 5.0 及更高版本。

于 2013-07-27T21:34:26.233 回答