問題タブ [gameplay-kit]

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 投票する
1 に答える
85 参照

swift - GKShuffledDistribution - 上限を使用してもすべての可能な値を使い果たしませんか?

アプリの 1 つで GKShuffledDistribution を使用しようとしていますが、nextInt(upperBound:) メソッドは、すべての可能な値を使い果たしているわけではないという点で、nextInt メソッドと同じようには機能しません。デモを行うには、プレイグラウンドを開いて次のようにします。

この方法を使用して2つの重複を取得しました。私がそれを置き換えた場合:

重複はありません。これはどのように nextInt(upperBound:) が動作するはずですか? もしそうなら、これを説明するドキュメントを教えてもらえますか? ありがとう。

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

xcode - Xcode 8 Swift 3 の GKComponentSystem

プロジェクトを Swift 3 に変換できません。以前のバージョンの Swift では、次のように GKComponentSystem の下にクラスを宣言できます。

ただし、Swift 3 では、最後に < GKComponent > を次のように追加する必要があります。

しかし、以前のようにシステム内の個々のコンポーネントにアクセスできないようです

行 print("something") はトリガーされませんでした。どうすればこれを修正できますか? どんな助けでも大歓迎です!

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

ios - GameplayKit > Scene Editor Navigation Graph > パスファインディングに使用するには?

少し前に、Apple は GameplayKit 要素を Xcode の Scene Editor に導入しました。これは素晴らしいことです。ただし、ナビゲーション グラフ要素に問題があるようです。 シーン エディタのナビゲーション グラフ

私が達成しようとしているのは、Scene Editor から GKGraph を描画し、それをコードで取得して、パスファインディングのベースとして使用することです。

そこで、最初に GKGraph を描画します。

シーン エディター描画 GKGraph

次に、次のように GameScene.swift で取得します。

ここで、graphsは、Scene Editor からの GKGraphs を格納するために Apple によって事前定義された配列です。ここまでは順調ですね。

次に、プレーヤーが画面上のタップ位置へのパスを見つけられるようにします。このために、次のコールバック メソッドでUITapGestureRecognizerを使用します。

このメソッドを使用して、プレーヤーをタップ位置に移動させます。問題は、GameplayKit によって返されるパスにstartNodeendNodeのみが含まれていることです。つまり、プレイヤーは事前に描画された GKGraph の上をまったく歩かず、endNodeまでまっすぐ歩きます。

注: 初めてNSLog(graph.nodes.debugDescription)を実行すると、事前に描画された 10 個のノードがすべて一覧表示されます。graph.connectToLowestCostNodeの後に再度実行すると、12 個のノードがすべて取得されます。したがって、私のグラフには経路探索に必要なすべてが含まれているようです。

何が問題だと思いますか?パスを定義するために、graph.findPathが事前に描画された 10 個のノードを使用しないのはなぜですか? あなたの答えは大歓迎です。

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

ios - GameplayKit > パスをたどるためにゴール後にエージェントの動きを止める

エージェントの動作に目標 toFollow: GKPath を追加することで、エージェントが GKPath をたどるようにしています。すべて正常に動作しますが、パス上のターゲット ポイントに到達すると、エージェントは 8 のような形で移動し続けます。GKPath のターゲット ポイントに到達するときにエージェントがさまようのを防ぐにはどうすればよいですか?

私が考えた解決策は、別の目標を toReachTargetSpeed: 0.0 に設定して、ターゲット ポイントに近づくことです。ただし、目標がいつ「完了」したかを確認する方法が組み込まれていないため、何がベストプラクティスになるかはわかりません。

  1. 更新ごとにターゲットまでの距離を確認するために IF ステートメントを使用しますか? パフォーマンスはどうですか?
  2. ある種の GKRule を使用しますか?

あなたの提案は非常に高く評価されます。ありがとう。

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

objective-c - Objective C で GKState の isValidNextState を実装する方法

GameplayKit のすべての例は常に Swift にあるようです。私は今のところ、swift に移行しないことに決めました。多くのコードを Objective C に変換しているだけなので、ほとんどの場合は問題ありません。

isValidNextStateクラスからメソッドを実装しようとしGKStateていますが、switch ステートメントでエラーが発生し、何が必要なのかわかりません... Swift では問題ないようですが、obj C ではそうではありません。私が得ているエラーは次のとおりです。

エラー:Statement requires expression of integer type('__unsafe_unretained Class _Nonnull' invalid

の代わりに switch ステートメントに何を含める必要がありstateclassますか?

正常に動作するSwiftの同等のものを次に示します。