問題タブ [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.
ios - 共有 GKMatchmaker の findMatchForRequest を正しく実装するにはどうすればよいですか (つまり、GKMatch.expectedPlayerCount == 0)?
MatchmakerViewController から GKMatchmaker に切り替えると、別々のデバイス (両方とも iPhone 5s) で実行されている 2 つのサンドボックス ゲーム センター アカウントが同じマッチに接続しなくなりました。どちらも expectedPlayerCount が 0 を超えていることを示しています。
ゲーム センターを使用したマルチプレイヤー ゲームの作成に関する RayWenderlich チュートリアルに従いました。それはリアルタイムであるはずであり、そのように機能していました。GKMatchmakerViewController を使用すると、すべてが完全に正常に機能しました (自動マッチングと招待の両方)。ただし、コードのブロックを 1 つ切り替えるとすぐに機能しなくなります。私はこれをしばらくいじっていましたが、アップルのドキュメントはまったく役に立たないようです。私がさらに何をする必要があるか知っている人はいますか?
これと機能していたものの唯一の違いは、これには GKMatchmakerViewController と Delegate の代わりに GKMatchmaker があることです。
ios - didChangeConnectionState が iPad で呼び出されたことがない
これは奇妙な問題です。私のプログラムは iPhone では正常に動作しますが、iPad では動作しません。
iPhone では GKMatch デリゲートが通常どおり呼び出されますが、iPad 2 および iPad mini では didChangeConnectionState 関数が呼び出されることはありません。
そこに解決策はありますか?
ios - GKMatchmakerviewcontroller でのキャンセルの処理
作成したゲームにマルチプレイヤー機能を作成しています。
マッチメイキング中に両方のプレイヤーが接続されている場合を除いて、すべてが機能しています。一方が「キャンセル」ボタンを押しても、もう一方のデバイスにはキャンセルの通知がありません。
他のデバイスでは、「Disconnected」という言葉に変わりますが、どのデリゲート メソッドも呼び出されません。
どうすればこれを処理できますか?
ios - Gamecenter でのみ Automatch を使用する
から友達招待ボタンを削除するにはどうすればよいですGKMatchmakerViewController
か?
その中のすべてのサブビューを印刷すると、ナビゲーション バーしか表示されません。
私は次のように提示しています。
ios8 - ゲームセンターのマッチメイキング
プレイヤー 3 人、ウィザード 1 人、ウォリアー 2 人を属性として一致させる必要があります。それを GKMatch でどのように行うことができますか? 次のスニペットは私のコードからのものです
ウィザード 1 人とウォリアー 1 人の 2 人のプレイヤー用にすべてを設定しても問題ありませんが、試合には 2 人のウォリアーが必要です。
前もって感謝します
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
- プロセス全体を間違って実行している可能性があります
招待を処理するための私のプロセス
- デバイス A のマッチ メーカーが招待に関する通知をデバイス B に送信する
- デバイス B が開き、マッチ メイキング ルームにリダイレクトされます
- デバイス B は次の関数を呼び出します。
{
}
- 両方のデバイスが次の関数を呼び出します。
{
}
- デバイス A がデバイス B にデータを送信(ここでクラッシュが発生)
{ -(void) sendDataToOppUnreliable:(NSString*)str
GKMatchSendDataUnreliable error:&error];// EXC_BAD_ACCESS
}
助けてくれてありがとう :)
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 が取得され、他のデバイスにはコールバックがありません。他のデバイスでメッセージを送信する必要がありますか? 試合について?
迅速なヘルプをいただければ幸いです。
xcode - 実行時エラー「 nil オブジェクトを挿入しようとしました」が発生しました
Xcode 7 beta 5 を使用して単純なマルチプレイヤー Swift プログラムを作成しようとしています。実行時に次のエラーが発生しました。
そして、試行錯誤したところ、このコードの一部が何らかの形でこのエラーを引き起こしていることがわかりました。
ここの専門家は、ここで何がうまくいかなかったのかを明らかにできるのだろうか? どうもありがとう!
サム
swift - 警告: ビューがウィンドウ階層にない別のビュー コントローラーにビュー コントローラーを表示しようとしています
私は、最初のView Controllerにゲームを開始するためのボタンがあるシンプルなシングルプレイヤーゲームを持っています。このボタンはセグエを実行し、GameViewController 内のすべてのゲーム ロジックが期待どおりに機能しています。
このチュートリアルに従って、マルチプレイヤー機能をゲームに追加しました。最初のView Controllerで、ボタンが呼び出すようになりました
GameKitHelper.swift に次の実装があります。
クラス MultiPlayerNetworking は GameKitHelper プロトコルを実装し、matchStarted 関数で呼び出されます。基本的に MultiPlayerNetworking クラスがここを引き継ぎ、ホストとリモート プレイヤーへのメッセージの送信を開始します。
しばらくして、自動マッチングが終了すると、次の関数が GameKitHelper で呼び出されることに注意してください。
さて、これは GKMatchmakerViewController が閉じられたことを示していると思います。これにより、最初のビュー コントローラーが再び表示されます (これが画面上で発生します)。
今私の問題!GKMatchmakerViewController が閉じられた後、最初のビュー コントローラーに戻り、gameView への自動セグエを「シミュレート」したいと考えています (これには、マルチプレイヤー ゲームを処理するロジックもあります)。
最初のビュー コントローラーを MultiPlayerNetworking プロトコルに準拠させました。これには、セグエをシミュレートする機能があります。
ただし、xCode は次のように訴えます。
私はここで立ち往生しており、このリンクを介して topViewController で performSegue 関数を呼び出していることを確認するために、ビューコントローラーを閉じるさまざまな方法を試しましたが、何も機能しません。
私の質問: GKMatchmakerViewController が視覚的に閉じられているのに、ビュー階層にまだ存在しているのはなぜですか?
閲覧大歓迎です!