問題タブ [skspritenode]
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.
objective-c - SKSpriteNode を使用して作成されたボタンの右 1/3 がタッチを検出していません
私のゲームでは、多数のボタンを作成しています。ユーザーがボタンの右側を上下にタッチしたときに、多くのボタンが検出されないことがわかりました。つまり、ボタンの左側に触れた場合はボタンが正しく反応しますが、右側に触れた場合は正しく反応しません。つまり、ボタンを 3 つの部分にスライスした場合、ボタンの右 1/3 は反応しませんが、ボタンの残りの 2/3 は完全に機能します。以下は、ボタンを実装するために使用したコードです。誰かが私が間違っているかもしれないことを教えてもらえますか? スプライト キットを初めて使用したときに、SKSpriteNode::zPosition プロパティが 1 以上に設定されていない場合、ボタンがまったく応答しないことに気付きました...このプロパティを設定すると、ボタンが機能し始めました。この zPosition の問題は、ボタン スプライト ノードがシーン内の唯一のスプライト ノードであるかどうかに関係なく発生したため、この問題はオーバーラップの問題でもないと思います。アイデアはありますか?
SKSpriteNode クラスを拡張して、次のシグネチャを持つ追加のメソッド GESpriteNode::setGestureHandler:withKey: を作成しました。
そして、そのように実装されます (_event は NSMutableDictionary です):
それらは次のように使用されます。
私の GEGestureRecognizer.h クラスは次のように定義されています。
そして、その GEGestureRecognizer.m は次のように定義されます。
game-engine - ループ内でスプライトをすぐに移動する方法 (FOR,WHILE ..)
パズルゲームを作っていて、 を使ってスプライトを新しい位置に移動しようとすると問題が発生しSKAction moveTo
ます。
これが私のケースです:
for
リストに 4 つのスプライトがあり、それらをループに入れてmoveTo
アクションを使用して新しい位置に移動したいと考えています。ただし、moveTo はスプライトをすぐに移動することはできません。スプライトを移動するには、ループが終了するまで待つ必要があります。問題は、ループを停止する条件としてスプライトの位置を使用することです。(例: スプライトの位置が制限定数に到達すると、それ以上移動できなくなり、ループが中断されます)
私の質問: スプライトをループ内ですぐに移動させる方法はありますか?? または、私のケースを解決するためのより良い方法を知っていますか?
どんな助けでも大歓迎です。
ありがとうございました。
ios - シーン座標を使用した SKSpriteNode zPosition の問題
スプライトキット
ドキュメントとスタックオーバーフローを検索しましたが、役に立つ資料を見つけることができませんでした。
ユーザーが画面上で SKpriteNodes をドラッグすると、スプライトの zPosition を更新して、必要に応じてスプライトを他のスプライトの前に正しく表示します。どのように動作させる必要があるかは、スプライトの yPosition に基づいています。yPosition が高いスプライトは、yPosition が低いスプライトより前にある必要があります。そこで、yPosition を zPosition に設定しただけで、正常に動作します...ほとんど。
SpriteKit の座標系により、スプライトが画面の半分ほど上に来ると、yPosition がゼロになり、次に負の数になります。これにより、zPosition が逆方向に影響を受けます。[self convertPointToView] メソッドを使用してポイントをシーン座標からビュー座標に変換しようとしましたが、役に立ちませんでした。これは、CGPointZero へのアンカー ポイントを持つ親 (背景のスプライト ノード) と関係があるかどうか疑問に思っています - それでも少し混乱します。
yPosition に基づいて zPosition を正しく設定する方法に関する推奨事項、またはシーンの座標系を変更することは可能ですか。({0,0} は背景ノードの左下隅ではなく、画面の中央にあるようです)
objective-c - スプライトが画像で初期化されないのはなぜですか?
私は SpriteKit で遊んでいて、おそらく非常にばかげた間違いに唖然としています。私はそのように宣言されたSKSpriteNode、Fishを拡張しています:
spriteNodeWithImageNamed クラス メソッドを次のようにオーバーライドします。
スプライトがロードされないため、これは間違っています。一方、通常の SKSpriteNode で spriteNodeWithImageNamed メソッドを呼び出すと、問題なく動作します。
私は何を間違っていますか?
ios - テキストフィールドをSKSceneに追加する
Sprite Kit を使用してゲームを作成しており、プレイヤーが名前を入力するためのテキスト フィールドを追加したいと考えています。
Sprite Kit を使用してテキストフィールドを作成するにはどうすればよいですか? プレイヤー オブジェクト (既に設定済み) を作成し、入力した名前とデフォルト スコア 0 を使用します。
ios7 - SKPhysicsJoints が機能しないのはなぜですか?
SKSpriteNode フィッシュと拡張 SKSpriteNode クラス フックがあります。これらが接触したときに結合し、後で一緒に動かそうとしています。私はこのコードを使用しています:
私はそのように設計された魚を持っています:
およびフック自体:
それでも、それらが結合され、フックを動かしても、魚は来ません。私が犯している明らかな間違いはありますか?
どんな助けでも大歓迎です。
ios7 - 参加後の奇妙なSKPhysicsWorldの動作
SKSpriteKit を使って釣りゲームを作っています。フック用といくつかの魚用のスプライト ノードがあります (このために SKSpriteNode クラスを拡張しました)。理想的には、魚がフックに引っ掛かったときの動作は、魚の口がフックの先端に移動することです (アクションを使用してこれを行います) :
次に、魚が少し下に回転して、フックにぶら下がっていることをシミュレートします (別のアクション:)
これらをそのまま実行すると思います:
これは多かれ少なかれ機能します(魚の方向に基づいてねじれを解決します)
後でやりたいことは、魚と釣り針の間にジョイントを作成することです。釣り針を動かしたときに、すでに魚が釣られていれば、魚は付いてきます。
私はこれをします :
ジョイントなしでコードを実行すると、魚はフックにとどまり回転します。ただし、ジョイントが作成されてアクションが実行されると、上からの回転アクションは呼び出されません (ただし、フックへの移動は呼び出されます)。
なぜこれが起こるのか、私には少しもわかりません。誰にも指針がありますか?
rotation - 中心点に基づいていくつかのスプライトの POSITION を回転およびスケーリングしますか?
このトピックに関するドキュメントやスレッドが見つからないため、ガイダンスを探しています。シーンには、ユーザーが自由にドラッグできる多数のスプライトノードがあります。さらに、ユーザーが複数のスプライトを選択できるようにする必要があります。
どのスプライトが選択されたかに基づいて計算された中心点に基づいて、選択されたスプライトの位置を回転します (つまり、選択されたスプライトがすでに円のフォーメーションにあり、ユーザーがそのフォーメーションを回転させた場合、各スプライトの位置は回転し、円を維持する必要があります)。サークル。
選択されたスプライトに基づいて計算された中心点に基づいて、選択されたスプライトの位置をスケーリングします (つまり、選択されたスプライトが円のフォーメーションにあり、ユーザーがフォーメーションをスケーリングした場合、円はそれに応じて大きくまたは小さくなります)。
他にも処理する必要があるイベントがありますが、これで始められるはずです。どのスプライトが選択されているかを維持し、それらの位置を変更しています (単一のスプライトと複数のスプライト)。それらの位置を回転およびスケーリングする方法について途方に暮れています。
誰かが私を正しい方向に向けることができますか?