2017-08-30 19 views
0

gestureRecognizersを使用するのではなく、シーンやノードのサブクラスでtouchesBeganなどのオーバーライドを行う場合のベストプラクティスはありますか?SpriteKit/Scenekit TouchesBeganまたはGestureRecognizer

私はアップルのテンプレートにoverride func touchesXXXXメソッドがあることを知っています。これにより、(カスタムレコグナイザを使用していない限り)もう少しコントロールが可能になります。しかし、多くのチュートリアルでは、GestureRecognizerのアプローチを使用しているようです。

これは主にチュートリアルで簡単にすることができますか、GestureRecognizerルートを使用して複雑さを取り除くのが一般的ですか?私はこれが開発者の好みになるかもしれないことを知っていますが、私はベストプラクティスを探しています - ゲームを作るときにAppleが実際に別の方法を提案していますか?

答えて

1

SceneKitとSpriteKitを一緒に混ぜると、もっと面白いことになるでしょう。私は、どちらかといえば少し異なるもののためのものなので、公式のドキュメンテーションを見ていませんでした。 Xcodeのゲームテンプレートは、クロスプラットフォームのスプライトキットゲームの場合、どちらか一方(または両方)を使用しています。

私は、GestureRecognizerのアプローチを使用するチュートリアルやブログのほとんどがあなたのために多くの仕事をしていると思いますが、より複雑なユースケースに入ると、手動でタッチを処理する必要があるかもしれません私が特定のプロジェクトのためにしなければならなかったように、自分自身のジェスチャー(インターネット上に浮かぶいくつかの例)を扱います。

私はまた、時々タッチアプローチとジェスチャーリコグナイザーを併用すると間違った結果(具体的には触れていない)を与えることができるいくつかのブログを読んだことがあるが、これは古い情報である可能性がある。 。

質問に答えるために、私は正式なベストプラクティスが有効で現行の方法であるとは考えていません。私はどちらかといえば、より良くフィットしていると思われるものを使用し、コードをできるだけシンプルできれいにしています。

+0

私は、直接接触認識とUIGestureRecognizersの両方を使用するとトラブルにつながることに同意します。ベストプラクティスがある場合は、UIが自然にそれらと連携する場合はジェスチャ認識ツールを使用し、より複雑なユースケースについてはタッチ認識を直接行うことをお勧めします。 (つまり、通常のUIKitを使用するのと同じです。)ゲームは、生産性アプリケーションと比べてより特定のUIニーズを持つ傾向があるので、おそらくゲーム空間でより明確なタッチトラッキングが表示されますが、おそらく多くのユースケースがありますジェスチャー認識機能が正常なゲームでさえ、 –

1

あなたがしたいのは、画面上のタッチに反応するだけであれば、3つの標準的な「タッチ」方法を使用します。

別のスワイプ、パン、ピンチなどに反応する必要がある場合は、ジェスチャ認識機能が必要です。

関連する問題