問題タブ [gkmatchmaker]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - プログラムで友達を招待する Game Center
友達を試合に招待するのに苦労しています。
問題は、アカウントにログインしている 2 番目のデバイス (G:1102359306) で招待通知を受信しないことです。GKMatchmakerViewController (2 行以上のコメントを外す) を使用し、GKMatchmaker ブロックにコメントすると、親友 - G:1102359306 が自動的にチェックされ、彼を招待すると、承認/辞退の通知が表示されます。
上記のコードに何か問題がありますか? 独自の UI を使用してマルチプレイヤー モードを処理したいと考えています。奇妙な問題は、コンソールにもログの良い一致/その他のエラーが表示されないことです.[エラーの説明]は、上記のコードを2回呼び出したときにのみ出力されます-以前のreqがキャンセルされたと表示されます.
ios - GKMatchmakerViewController - 「今すぐプレイ」の押下を検出する方法
GKMatchmakerViewController の「今すぐプレイ」ボタンが押されたことを検出する方法はありますか?
私が参照ドキュメントで見つけることができるのは次のとおりです。
– matchmakerViewController:didFindMatch:
– matchmakerViewController:didFindPlayers:
– matchmakerViewControllerWasCancelled:
– matchmakerViewController:didFailWithError:
– matchmakerViewController:didReceiveAcceptFromHostedPlayer:
ios - GameKit がホストするマッチメイキングは実際に機能しますか?
これについて私が間違っていることを本当に願っていますが、私が知る限り、GameKit がホストするマッチメイキングは、プレイヤーが何人かの友人をマッチに招待し、オートマッチ用にいくつかのスロットを開いたままにしておくと、単に機能しません. 各ケースを個別に動作させることはできますが、混合すると誰も接続できなくなります。
A、B、C の 3 人のプレーヤーを考えてみましょう。A は B を試合に招待し、3 番目のスロットを空けたままにします。C は 3 プレーヤー ゲームにマッチすることを選択します。
ここで、B が A からの招待を処理するとき (GKMatchmaker に InviteHandler を登録したことにより)、B はホスティング サーバーに接続して接続し、プレーヤーの準備完了状態を設定します。プレイヤー A は、B が接続したことを示すデリゲート メッセージを matchmakerViewController:didReceiveAcceptFromHostedPlayer: に受け取ります。2 人用のゲームでは、B はこの時点でゲームを開始して続行することができます。代わりに、[今すぐプレイ] ボタンをクリックすると、マッチメーカーは 3 番目のプレイヤーが到着するまで待機します。
一方、プレイヤー C は自動的にマッチに追加されることを選択しました。A と B も自動的に追加するように要求した場合、3 つすべてに、デリゲートの matchmakerViewController:didFindPlayers: メソッドを介して一致が通知されます。ただし、代わりに [今すぐプレイ] ボタンをクリックすると、マッチメーカーは待機します... 永遠に。プレーヤー A も待っています... 永遠に。プレイヤー B は招待者であるプレイヤー A についてしか知らないので、理論的にはゲームを開始しようとすることもできますが、A は参加者の一部しか知らないため、それは無意味です。
システムにこのような壊滅的な欠陥があるとは信じがたいですが、私はこのシナリオを実行し、関連する GameKit クラスで公開されているすべてのデリゲート メソッドをトレースしました。送信された委任メッセージ。あたかも GameCenter が A と B の存在を完全に認識していないかのようです。これは、そもそも招待を受け取るのに「十分」に表示されていたにもかかわらず、A がビュー コントローラーに B が存在することを明示的にマークしなければならない理由を説明するのに役立ちます。 . また、プレイヤー C が 2 プレイヤー ゲームのみを要求するようにしてみました。これは、プレイヤー A が 1 人の「目に見える」プレイヤーとしてカウントされることを意味する可能性があるという考えに基づいています。
誰かがこの API を直接使用した経験があり、このユースケースで機能する (または機能しない) ことを明示的に主張できますか? これは私にとって深刻な問題です。これは、GameKit ベースのマッチメイキング コードを破棄して、何かを完全にゼロから作成する必要があることを意味します。
情報をお寄せいただきありがとうございます。
objective-c - Gamecenter マッチメイキングが機能しない
これが私のMenu.mのonEnterメソッドです:
デバイスとシミュレーターで試しましたが、一致しませんでした。
私はまた、Ray Wenderlichのチュートリアルに従ってそれをやろうとしました:
しかし、その後、matchmakerviewcontroller でさえ表示されませんでした。何が間違っているのかわかりません。
前もって感謝します。
ios - monogame でデフォルトの iOS ソリューションをビルドするときのエラー メッセージ
Monotouch でデフォルトの「MonoGame.Framework.iOS.sln」をビルドしようとすると、次のエラー メッセージが表示される理由を知っている人はいますか? どうすればこれを修正できますか?:
Guide ソース ファイルの 468 行目 (MonoGame.Framework.iOS>iOS>GamerServices>Guide.cs から、
// その行のエラーは -- タイプ 'MonoTouch.GameKit.GKMatchmakerViewController' には、'0' 引数を取るコンストラクターが含まれていません。
objective-c - GKMatchmakerViewControllerはタッチを処理しません
私はこのmodalViewを表示していますが、タッチを処理しません。私はcocos2d-iphoneを使用しています。
ios - iOS:プログラムでGame Centerのサインインを要求しますか?
簡単な質問がありますが、Appleのドキュメントを調べて検索を行ったところ、答えが見つかりませんでした。
Game Centerのサインインビューをプログラムでプルアップすることは可能ですか?Game Centerが必要なUIButton
ものがあり、アプリを開いたときにクライアントがサインインしない場合(iOSは起動時にサインインビューを表示します)、ユーザーがサインインするための2回目のチャンスを提供したいと思います。
iphone - iOS Gamecenter プログラマティック マッチメイキング
カスタム UI を使用してリアルタイム マルチプレイヤー ゲームを実装しようとしています (no GKMatchMakerViewController
)。私はstartBrowsingForNearbyPlayersWithReachableHandler:
^(NSString *playerID, BOOL reachable)
ローカル プレイヤーを見つけるために使用し、GKMatchmaker
シングルトン (既に開始済み) を使用してマッチ リクエストを開始しています。
ここが私が困っているところです。リクエストを送信すると、エラーなしで完了ハンドラーがほぼ即座に起動し、返される試合の予想プレーヤー数はゼロです。その間、他のプレイヤーは間違いなくリクエストに応答していません。
関連コード:
ios - GKMatchMakerViewController initWithRequest を使用すると、フレンドのマッチメイキングの招待が即座に失敗する
これはスタック オーバーフローに関する私の最初の質問です。よろしくお願いします。シンプルな 1v1 マルチプレイヤー機能を iPhone ゲームに追加していますが、Matchmaker 機能に苦労しています。現在、デフォルトの MatchMaker のデリゲートとして機能する ViewController があります。マッチメーカー ビュー コントローラーは問題なく表示されますが、友人として持っている他のサンドボックス アカウントを招待しようとすると、すぐに失敗します。受け入れダイアログが他のデバイスにポップアップ表示されることはなく、招待ハンドラーが呼び出されることもありません。以下は、Match Maker を呼び出すために使用するコード スニペットです。
何が間違っているのかよくわかりませんが、おそらくばかげたことです。どんな助けでも大歓迎です。ありがとう。
ios - 接続が確立される前に、自動照合されたプレーヤー ID はどこに保存されますか?
iOS6 以降で実行している場合にのみ表示される、GKMatchmakerViewController の直接のドロップイン置換としてカスタム マッチメーカーを実装しました。完全に機能していますが、GKMatchmakerViewController の UI の一部がわかりません。
2 プレイヤー (request.minPlayers = 2、request.maxPlayers = 2) の自動対戦を開始する場合、GKMatchmakerViewController は、接続状態に変わる前に見つかったプレイヤーの表示名と写真で UI を更新できます。 .
次のコードを使用して、自動一致を開始します。接続が確立され、ゲームが開始され、すべて問題ありません。
ただし、次の方法で GKPlayerStateConnected に変更されるまで、playerID を取得できません。
一致が見つかると、そのプレーヤーは GKPlayerStateUnknown になります。ただし、コード内の一致 NSLog() は playerID を示しています (これは間違いなく localPlayer の ID ではありません。実際の番号は編集されています)。
試合の playerIDs 配列 (2 番目の NSLog()) は、試合が作成されるとすぐに空になります。これは、まだ公式に接続が確立されていないため意味があります。
ようやく質問にたどり着きました(ご辛抱いただきありがとうございます):
1a) 不明な状態のプレーヤーの ID はどこから来たのですか?
1b) それは明らかに試合中にありますが、正確にはどこに保管されていますか? playerID に関連して見えるのは、空の配列だけです。
2) その playerID を取得する他の (合法的な) 方法はありますか? つまり、接続状態に変わる前に