問題タブ [gamekit]
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 - GKVoiceChatServiceUnableToConnectError が発生するのはなぜですか? どうしたの?
GKのボイスチャットを実装しようとしています。基礎となるネットワークは、Bluetooth の代わりに Wi-Fi 経由で行っています。シミュレーターとテスト デバイスの間で、招待を受け入れることができました。しかし、その直後に、didNotStartWithParticipantID という呼び出しが行われ、次のエラーが表示されます。
何か案は?何が原因ですか?
core-data - GameKitを使用して、NSDictionaryを介してiPhone間でCoreDataデータを転送する
2台のiPhone間で、CoreDataを介して管理されている情報を交換したいアプリケーションがあります。
まず、Core DataオブジェクトをNSDictionaryに変換します(転送されるNSDataに変換される非常に単純なもの)。
私のCoreDataには、3つの文字列属性と、変換可能な2つの画像属性があります。
NSDictionary APIを調べましたが、CoreData情報を作成または追加することはできませんでした。
これに関するヘルプやサンプルコードをいただければ幸いです。
iphone - GKSession sendDataToAllPeers:withDataMode:error: は非同期です - 完了したときのニュースを取得する方法は?
GKSession sendDataToAllPeers:withDataMode:error: は非同期です...というかわかりました。ピアがアプリケーション レベルの ACK を送信する以外に (非常に扱いにくい)、送信が完了したことを確認する手段はありますか?
M.
iphone - GKSessionは2番目の接続でピアにデータを送信しません
私はピアツーピアのiPhoneゲームがかなりうまく機能している。利用可能なピアを表示するテーブルを作成しました。(これまでのところ)最大4つのデバイスを接続して、ゲームの最初から最後までフルラウンドでプレイできます。
しかし、ここに私の問題があります...
GKSession
を使用して一方のデバイスで作成し、を使用してもう一方のデバイスを作成GKSessionModeClient
しGKSessionModeServer
ます。クライアントはサーバーを確認し、接続を選択してから、サーバーが承認します。すべてのピアが接続されたら、サーバーは「ゲームの開始」をタップできます。
サーバーがゲームを開始する前に、クライアントが「戻る」ボタンをタップして前の画面に移動した場合、カスタムピアピッカーの表示がビューからポップされ、セッションが「破棄」されます...
ここで、クライアントがピアピッカーに戻ってサーバーに再度参加すると、GKSessionStateConnected
状態が再び取得されsendDataToAllPeers:
ますが、クライアントに何も到達しない場合。1つのデバイスがゲームを開始し、3つのデバイスが参加してから、サーバーが「ゲームの開始」をタップすると、問題なく動作します。ただし、ゲームが開始する前に誰かが終了した場合、セッションの再作成と参加は失敗します。
何か案は?この時点で考えられる唯一のハックは、ユーザーがサーバーに接続したときに「戻る」をタップできないようにすることですが、そのようなことはやっかいです...気が変わったらアプリを完全に終了する必要があります。この接続の問題を除いて、アプリが実行されているので、私はこれで終わりです。一種のエッジケースですが、セッションをクリアするためにアプリケーションを再起動せずにゲームを開始できない場合、ユーザーがイライラしているのを見ることができます。
できればこれを賞金にします。助けてください!
@byteclubを編集
- ゲームが始まる前にクライアントが離れた場合、サーバーは関連するすべてのデータ構造を正しくクリーンアップしますか?
サーバーが接続を受け入れた後にクライアントがゲームロビーを離れると、クライアントのセッションは破棄されます。
ただし、サーバーデバイスでdisconnectFromPeersメソッドを呼び出すことはありません。
ゲームはもう始まっていますか?
少しだけ、クライアントが切断すると、全員が「ピア終了」通知を受け取り、ゲームが終了します。この場合、再接続の心配はありません。これは主に、クライアントが「キャンセル」して問題のあるホーム画面に戻ることができるゲームロビーにあります。この場合、クライアントのセッションは破棄されます。その後、ロビーに戻って新しいGKSessionが割り当てられた場合でも、サーバーに接続できますが、接続するとsendDataToAllPeersは機能しなくなります。
クライアントですが、サーバーはそのまま実行しますか?
クライアントはどのような場合でも再接続できます。終了して戻ってアプリを再起動し、問題なく再接続できます。サーバーとクライアントの両方を再起動しない限り、sendDataToPeersは失敗します。
ユーザーが「戻る」をタップすると?
はい。(上記のコードを参照)
これはおそらく遠くからデバッグするのは非常識だと思いますが、私が調べられることについて何か提案があれば、それをいただければ幸いです。
objective-c - oob メッセージの作成に失敗しましたか?
こんにちは、Bonjour の学習の開始として、2 つの iPod touch 間で単純なチャット クライアントを構築しようとしています。2 つのデバイスを正常に接続すると、すべてが機能するように見えます。問題なく(エラーなしで)データを送信できますが、データを受信する必要があるときに送信できません。ログを見ると、「GCKSessionEvent_IncomingOOBPacket: oob メッセージの作成に失敗しました」というメッセージが表示されます。そのメッセージの一部をグーグルで検索して回答を探しましたが、文字通り 0 件の結果がありました。ここで誰かが答えてくれることを願っていました。
ありがとう
KC
コメントへの返信:
3つの呼び出しは
iphone - iPhone を搭載した iPad で GameKit を使用して複数のピアを使用するにはどうすればよいですか?
最大 4 つの iPhone/iPod Touch (クライアント) と通信する必要がある iPad アプリ (「サーバー」) を開発している場合、どうすればこれを管理できますか? 2 つのアプリは別々になります。iPhone ごとに 4 つの GKSession を作成する必要がありますか? 5 つのデバイスすべてを接続する 1 つの GKSession を用意する必要がありますか? その場合、各 iPhone は他の iPhone を「見る」ことができますか? これらのアプリは、iPad 用の Scrabble アプリに少し似ています (機能面ではなく、アイデア面で)。これをどのように管理すればよいですか?
事前に感謝します。さらに情報が必要な場合はコメントしてください。
iphone - 4.0 の GameKit はプライムタイムの準備ができていませんか? 広告サービスの停止
4.0 で実行されているゲームキット アプリケーションは、GKSession オブジェクトの削除を適切に処理しません。3.1.3 または 3.2 で実行している場合、ピアが切断され、セッションがクリーンアップされた場合 (Apple のデモのように):
次に、他のピアが状態の変更を受信し、ピアのテーブル ビューを更新できます。
私のアプリケーションでは、1 つのピアがサーバーとして起動し、もう 1 つのピアがクライアントとして起動します。クライアントがサーバーへの接続を要求すると、クライアントの名前がサーバーのプレイヤー リストに表示されます。サーバーがリクエストを受け入れることを選択すると、セッション接続が確立され、ゲームをプレイできるようになります。ただし、サーバーが要求を受け入れる前にクライアントが終了した場合、クライアントはセッションをクリーンアップし (上記のように)、それに応じて (状態変更を受信すると) サーバーのピア リストからクライアントが消えます。これは 3.1–3.2 で驚くほど機能します
4.0 で実行されている同じアプリケーションを実行すると、サーバーとクライアントがエラーをスローし、ピアが状態の変更を受信するのに非常に長い時間がかかります。受信すると、アプリケーションはエラーなしでクラッシュします (ビルドで NSZombieEnabled=YES を使用しても)。引数)。サーバーは、クライアントから「状態変更」メッセージを受け取ることはありません。代わりに、次のエラーがスローされます。
私が思うに、重要なエラーは次のとおりです。
セッションが利用できなくなっていないように見えます (サービスのアドバタイズを停止する際のエラー)。実際のクラッシュ:
進行中の完全なアプリケーションでバグを報告しました。アプリ自体は完成しており、提出する準備がほぼ整っており、3.1.3/3.2 でかなりうまく動作しますが、現在の 4.0 の Gamekit の状態では提出できません。非常に失望したので、このバグレポートが将来役立つことを願っています. 誰かがこのエラーまたは私が間違っている可能性があることを理解していれば、私は非常に感謝しています.
できれば助けてください。私はこのアプリケーションでここにタオルを投げようとしていますが、それはとても近いです.
iphone - 同じiPhoneアプリを2台のデバイスで同時に実行しますか?
XcodeでGameKitを使用するiPhoneアプリがあります。動作させるのに問題があるので、2つのデバイスのNSLog出力を一度に確認する必要があります。私の問題は、[ビルドして移動]をクリックすると、最後に接続したデバイスで実行され、2つのデバイスで同時に実行して、両方のコンソール出力を確認できるようにすることです。それを行う方法はありますか?
game-engine - PC用のGameSaladのようなツール
スクリプトなどを記述する必要がなく、既存のビヘイビアとイベントを使用してカスタム ゲーム ロジックを作成する PC 用の GameSalad のようなツールを知っている人はいますか?
ありがとう
iphone - Game Kit 経由でデータを送信するとアプリケーションがクラッシュするのはなぜですか?
2 台の iPhone 間で Bluetooth を設定する方法については、この素晴らしいガイドに従っています。
ただし、テキストではなくバイナリ (ビデオなど) を送信する必要があります。
データを NSData にロードします
次に、送信時のいくつかの方法
しかし、アプリケーションがクラッシュします。エンコードする必要がありますか?