Monotouch上的游戏中心问题

时间:2013-07-27 04:42:50

标签: xamarin.ios game-center

我正在尝试将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示例,但我在游戏中看不到任何验证窗口。我可以看到“欢迎回来,名字”通知但我从gamecenter应用程序注销后重新打开我的游戏,但我看不到任何身份验证窗口。

我该如何解决?

提前致谢

1 个答案:

答案 0 :(得分:2)

只需在FinishedLaunching

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

这应该显示一个游戏中心“吐司”说“欢迎回来,玩家1”。

如果这不起作用,以下是一些想法:

  • 确保您已在开发人员门户网站中设置了新的捆绑包ID,并在Info.plist
  • 中声明了该ID
  • 开始在iTunes连接中填写您的应用详情(最少是描述,关键字,图标,1个屏幕截图),并确保启用游戏中心并将您的新游戏添加到群组
  • 使用游戏中心的测试iTunes用户登录(在ITC中创建),或与您的开发者帐户关联的登录

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