問題タブ [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.
swift - GKShuffledDistribution - 上限を使用してもすべての可能な値を使い果たしませんか?
アプリの 1 つで GKShuffledDistribution を使用しようとしていますが、nextInt(upperBound:) メソッドは、すべての可能な値を使い果たしているわけではないという点で、nextInt メソッドと同じようには機能しません。デモを行うには、プレイグラウンドを開いて次のようにします。
この方法を使用して2つの重複を取得しました。私がそれを置き換えた場合:
重複はありません。これはどのように nextInt(upperBound:) が動作するはずですか? もしそうなら、これを説明するドキュメントを教えてもらえますか? ありがとう。
xcode - Xcode 8 Swift 3 の GKComponentSystem
プロジェクトを Swift 3 に変換できません。以前のバージョンの Swift では、次のように GKComponentSystem の下にクラスを宣言できます。
ただし、Swift 3 では、最後に < GKComponent > を次のように追加する必要があります。
しかし、以前のようにシステム内の個々のコンポーネントにアクセスできないようです
行 print("something") はトリガーされませんでした。どうすればこれを修正できますか? どんな助けでも大歓迎です!
ios - GameplayKit > Scene Editor Navigation Graph > パスファインディングに使用するには?
少し前に、Apple は GameplayKit 要素を Xcode の Scene Editor に導入しました。これは素晴らしいことです。ただし、ナビゲーション グラフ要素に問題があるようです。
私が達成しようとしているのは、Scene Editor から GKGraph を描画し、それをコードで取得して、パスファインディングのベースとして使用することです。
そこで、最初に GKGraph を描画します。
次に、次のように GameScene.swift で取得します。
ここで、graphsは、Scene Editor からの GKGraphs を格納するために Apple によって事前定義された配列です。ここまでは順調ですね。
次に、プレーヤーが画面上のタップ位置へのパスを見つけられるようにします。このために、次のコールバック メソッドでUITapGestureRecognizerを使用します。
このメソッドを使用して、プレーヤーをタップ位置に移動させます。問題は、GameplayKit によって返されるパスにstartNodeとendNodeのみが含まれていることです。つまり、プレイヤーは事前に描画された GKGraph の上をまったく歩かず、endNodeまでまっすぐ歩きます。
注: 初めてNSLog(graph.nodes.debugDescription)を実行すると、事前に描画された 10 個のノードがすべて一覧表示されます。graph.connectToLowestCostNodeの後に再度実行すると、12 個のノードがすべて取得されます。したがって、私のグラフには経路探索に必要なすべてが含まれているようです。
何が問題だと思いますか?パスを定義するために、graph.findPathが事前に描画された 10 個のノードを使用しないのはなぜですか? あなたの答えは大歓迎です。
ios - GameplayKit > パスをたどるためにゴール後にエージェントの動きを止める
エージェントの動作に目標 toFollow: GKPath を追加することで、エージェントが GKPath をたどるようにしています。すべて正常に動作しますが、パス上のターゲット ポイントに到達すると、エージェントは 8 のような形で移動し続けます。GKPath のターゲット ポイントに到達するときにエージェントがさまようのを防ぐにはどうすればよいですか?
私が考えた解決策は、別の目標を toReachTargetSpeed: 0.0 に設定して、ターゲット ポイントに近づくことです。ただし、目標がいつ「完了」したかを確認する方法が組み込まれていないため、何がベストプラクティスになるかはわかりません。
- 更新ごとにターゲットまでの距離を確認するために IF ステートメントを使用しますか? パフォーマンスはどうですか?
- ある種の GKRule を使用しますか?
あなたの提案は非常に高く評価されます。ありがとう。
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の同等のものを次に示します。