問題タブ [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.

0 投票する
0 に答える
474 参照

ios - 共有 GKMatchmaker の findMatchForRequest を正しく実装するにはどうすればよいですか (つまり、GKMatch.expectedPlayerCount == 0)?

MatchmakerViewController から GKMatchmaker に切り替えると、別々のデバイス (両方とも iPhone 5s) で実行されている 2 つのサンドボックス ゲーム センター アカウントが同じマッチに接続しなくなりました。どちらも expectedPlayerCount が 0 を超えていることを示しています。

ゲーム センターを使用したマルチプレイヤー ゲームの作成に関する RayWenderlich チュートリアルに従いました。それはリアルタイムであるはずであり、そのように機能していました。GKMatchmakerViewController を使用すると、すべてが完全に正常に機能しました (自動マッチングと招待の両方)。ただし、コードのブロックを 1 つ切り替えるとすぐに機能しなくなります。私はこれをしばらくいじっていましたが、アップルのドキュメントはまったく役に立たないようです。私がさらに何をする必要があるか知っている人はいますか?

これと機能していたものの唯一の違いは、これには GKMatchmakerViewController と Delegate の代わりに GKMatchmaker があることです。

0 投票する
1 に答える
58 参照

ios - didChangeConnectionState が iPad で呼び出されたことがない

これは奇妙な問題です。私のプログラムは iPhone では正常に動作しますが、iPad では動作しません。

iPhone では GKMatch デリゲートが通常どおり呼び出されますが、iPad 2 および iPad mini では didChangeConnectionState 関数が呼び出されることはありません。

そこに解決策はありますか?

0 投票する
2 に答える
156 参照

ios - GKMatchmakerviewcontroller でのキャンセルの処理

作成したゲームにマルチプレイヤー機能を作成しています。

マッチメイキング中に両方のプレイヤーが接続されている場合を除いて、すべてが機能しています。一方が「キャンセル」ボタンを押しても、もう一方のデバイスにはキャンセルの通知がありません。

他のデバイスでは、「Disconnected」という言葉に変わりますが、どのデリゲート メソッドも呼び出されません。

どうすればこれを処理できますか?

0 投票する
2 に答える
277 参照

ios - Gamecenter でのみ Automatch を使用する

から友達招待ボタンを削除するにはどうすればよいですGKMatchmakerViewControllerか?

その中のすべてのサブビューを印刷すると、ナビゲーション バーしか表示されません。

私は次のように提示しています。

0 投票する
2 に答える
302 参照

ios8 - ゲームセンターのマッチメイキング

プレイヤー 3 人、ウィザード 1 人、ウォリアー 2 人を属性として一致させる必要があります。それを GKMatch でどのように行うことができますか? 次のスニペットは私のコードからのものです

ウィザード 1 人とウォリアー 1 人の 2 人のプレイヤー用にすべてを設定しても問題ありませんが、試合には 2 人のウォリアーが必要です。

前もって感謝します

0 投票する
1 に答える
103 参照

cocos2d-x - EXE_BAD_BADACCESS が GKMatch にアクセスしようとしていますか?

問題の概要

gamecenter を使用してフレンドとリアルタイムでプレイしようとすると、ゲームプレイ中にクラッシュする

プロジェクトの詳細

  • cocos2dxでgamecenterを使用しています
  • サンドボックス モードを使用しています: テスト中の両方のアカウントがサンドボックス モードです
  • 2 台の iPad をテストに使用 (IOS 8.3)
  • GKMatchMaker を使用してプレイヤーをマッチングしています
  • 「ランダム」または「今すぐプレイ」によるリアルタイム マッチは問題なく動作します
  • 'Invite a Friend' のリアルタイム マッチは正常にマッチしますが、GKMatch オブジェクトにアクセスするとクラッシュします
  • 信頼できる方法または信頼できない方法を使用してデータを送信するとクラッシュが発生する (Invite のみ)

私の調査

  • 試合中に GKMatch にアクセスすると、EXC_BAD_ACCESS が作成されます
  • 次の関数でアクセスしたときに、一致する変数に割り当てられた値が null または無効ではありません:

-(void)matchmakerViewController: (GKMatchmakerViewController *) viewController didFindMatch:(GKMatch *)match

  • プロセス全体を間違って実行している可能性があります

招待を処理するための私のプロセス

  1. デバイス A のマッチ メーカーが招待に関する通知をデバイス B に送信する
  2. デバイス B が開き、マッチ メイキング ルームにリダイレクトされます
  3. デバイス B は次の関数を呼び出します。

{

}

  1. 両方のデバイスが次の関数を呼び出します。

{

}

  1. デバイス A がデバイス B にデータを送信(ここでクラッシュが発生)

{ -(void) sendDataToOppUnreliable:(NSString*)str

GKMatchSendDataUnreliable error:&error];// EXC_BAD_ACCESS

}

助けてくれてありがとう :)

0 投票する
1 に答える
184 参照

objective-c - (GKMatch GKVoiceChat) - didFindMatch が呼び出された後、両方のプレーヤーが切断される

GKMatch オブジェクトを使用して、接続された 2 人のプレイヤー間で VoiceChat を実現しようとしています。プレイヤーは認証され、GKMatchmakerViewController を使用してマッチを作成することもできます。

問題は、デリゲート コールバック経由で GKMatch オブジェクトを受信したときに、 AudioSessionmatchmakerViewController:didFindMatch:と VoiceChat オブジェクトをセットアップしたことです。しかし、このメソッドが返された直後に、GKMatch のデリゲートでコールバックを取得しますmatch:player:didChangeState:

didFindMatch コールバックで AudioSession と VoiceChat を作成する方法は次のとおりです。

に電話がかかってきませんplayerStateUpdateHandler。次の関数で呼び出しが切断されます: `- (void)match:(GKMatch *)match player:(NSString *)playerID didChangeState:(GKPlayerConnectionState)state { if (_match != match) return;

}`

質問:-

どちらの側でも音声が聞こえません。何か足りないのでしょうか? 私はこれを 3 日間試してきましたが、(副次的な質問として) 2 番目のプレーヤーをどうすればよいかわかりません。一致すると、デバイスの 1 つで didFindMatch が取得され、他のデバイスにはコールバックがありません。他のデバイスでメッセージを送信する必要がありますか? 試合について?

迅速なヘルプをいただければ幸いです。

0 投票する
1 に答える
80 参照

xcode - 実行時エラー「 nil オブジェクトを挿入しようとしました」が発生しました

Xcode 7 beta 5 を使用して単純なマルチプレイヤー Swift プログラムを作成しようとしています。実行時に次のエラーが発生しました。

そして、試行錯誤したところ、このコードの一部が何らかの形でこのエラーを引き起こしていることがわかりました。

ここの専門家は、ここで何がうまくいかなかったのかを明らかにできるのだろうか? どうもありがとう!

サム

0 投票する
1 に答える
452 参照

swift - 警告: ビューがウィンドウ階層にない別のビュー コントローラーにビュー コントローラーを表示しようとしています

私は、最初のView Controllerにゲームを開始するためのボタンがあるシンプルなシングルプレイヤーゲームを持っています。このボタンはセグエを実行し、GameViewController 内のすべてのゲーム ロジックが期待どおりに機能しています。

このチュートリアルに従って、マルチプレイヤー機能をゲームに追加しました。最初のView Controllerで、ボタンが呼び出すようになりました

GameKitHelper.swift に次の実装があります。

クラス MultiPlayerNetworking は GameKitHelper プロトコルを実装し、matchStarted 関数で呼び出されます。基本的に MultiPlayerNetworking クラスがここを引き継ぎ、ホストとリモート プレイヤーへのメッセージの送信を開始します。

しばらくして、自動マッチングが終了すると、次の関数が GameKitHelper で呼び出されることに注意してください。

さて、これは GKMatchmakerViewController が閉じられたことを示していると思います。これにより、最初のビュー コントローラーが再び表示されます (これが画面上で発生します)。

今私の問題!GKMatchmakerViewController が閉じられた後、最初のビュー コントローラーに戻り、gameView への自動セグエを「シミュレート」したいと考えています (これには、マルチプレイヤー ゲームを処理するロジックもあります)。

最初のビュー コントローラーを MultiPlayerNetworking プロトコルに準拠させました。これには、セグエをシミュレートする機能があります。

ただし、xCode は次のように訴えます。

私はここで立ち往生しており、このリンクを介して topViewController で performSegue 関数を呼び出していることを確認するために、ビューコントローラーを閉じるさまざまな方法を試しましたが、何も機能しません。

私の質問: GKMatchmakerViewController が視覚的に閉じられているのに、ビュー階層にまだ存在しているのはなぜですか?

閲覧大歓迎です!