Beispiel #1
0
        /// <summary>
        /// Displays the iOS matchmaker to the player.
        /// </summary>
        /// <remarks>
        /// Note this is not overloaded in derived classes on purpose.  This is
        /// only a reason this exists is for caching effects.
        /// </remarks>
        /// <param name="minPlayers">Minimum players to find</param>
        /// <param name="maxPlayers">Maximum players to find</param>
        /// <param name="playersToInvite">Players to invite/param>
        public static void ShowMatchMaker(int minPlayers, int maxPlayers, string[] playersToInvite)
        {
            AssertInitialised();

            if ((Gamer.SignedInGamers.Count > 0) && (Gamer.SignedInGamers[0].IsSignedInToLive))
            {
                // Lazy load it
                if (matchmakerViewController == null)
                {
                    matchmakerViewController = new GKMatchmakerViewController(new GKMatchRequest());
                }

                if (matchmakerViewController != null)
                {
                    matchmakerViewController.MatchRequest.MinPlayers      = minPlayers;
                    matchmakerViewController.MatchRequest.MaxPlayers      = maxPlayers;
                    matchmakerViewController.MatchRequest.PlayersToInvite = playersToInvite;

                    matchmakerViewController.DidFailWithError += delegate(object sender, GKErrorEventArgs e) {
                        matchmakerViewController.DismissModalViewControllerAnimated(true);
                        IsVisible = false;
                        TouchPanel.EnabledGestures = prevGestures;
                    };

                    matchmakerViewController.DidFindMatch += delegate(object sender, GKMatchEventArgs e) {
                        Guide.Match = e.Match;
                    };

                    matchmakerViewController.DidFindPlayers += delegate(object sender, GKPlayersEventArgs e) {
                    };

                    matchmakerViewController.WasCancelled += delegate(object sender, EventArgs e) {
                        matchmakerViewController.DismissModalViewControllerAnimated(true);
                        IsVisible = false;
                        TouchPanel.EnabledGestures = prevGestures;
                    };

                    if (_window != null)
                    {
                        if (viewController == null)
                        {
                            viewController = new GuideViewController(_gameViewController);
                            _window.Add(viewController.View);
                            viewController.View.Hidden = true;
                        }

                        prevGestures = TouchPanel.EnabledGestures;
                        TouchPanel.EnabledGestures = GestureType.None;
                        viewController.PresentModalViewController(matchmakerViewController, true);
                        IsVisible = true;
                    }
                }
            }
        }
Beispiel #2
0
        public static void ShowMatchMaker()
        {
            if ((Gamer.SignedInGamers.Count > 0) && (Gamer.SignedInGamers[0].IsSignedInToLive))
            {
                // Lazy load it
                if (matchmakerViewController == null)
                {
                    matchmakerViewController = new GKMatchmakerViewController();
                }

                if (matchmakerViewController != null)
                {
                    matchmakerViewController.DidFailWithError += delegate(object sender, GKErrorEventArgs e) {
                        matchmakerViewController.DismissModalViewControllerAnimated(true);
                        isVisible = false;
                        TouchPanel.EnabledGestures = prevGestures;
                    };

                    matchmakerViewController.DidFindMatch += delegate(object sender, GKMatchEventArgs e) {
                    };

                    matchmakerViewController.DidFindPlayers += delegate(object sender, GKPlayersEventArgs e) {
                    };

                    matchmakerViewController.WasCancelled += delegate(object sender, EventArgs e) {
                        matchmakerViewController.DismissModalViewControllerAnimated(true);
                        isVisible = false;
                        TouchPanel.EnabledGestures = prevGestures;
                    };

                    if (Window != null)
                    {
                        if (viewController == null)
                        {
                            viewController = new GameVc();
                            Window.Add(viewController.View);
                            viewController.View.Hidden = true;
                        }

                        prevGestures = TouchPanel.EnabledGestures;
                        TouchPanel.EnabledGestures = GestureType.None;
                        viewController.PresentModalViewController(matchmakerViewController, true);
                        isVisible = true;
                    }
                }
            }
        }