問題タブ [sknode]

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 に答える
687 参照

ios - スプライト キットの bodyAtPoint と bodyInRect は正しくない値を返しますか?

画面上のポイント 0.0 に 1 つのシーン、1 つのスプライト ノード 20x20px の非常に単純なサンプル コードを作成しました。呼び出すscene.physicsWorld bodyAtPointと、34x34 などのポイントでもこのノードが返されます。しかし、ポイント 35x35 では を返しますnull。したがって、基本的に、両方の軸の 0px から 34px までのすべてのポイントがこのノードを返します。35px から開始すると、もう返されません。スプライトが目に見えて 20px 20px で終了する場合、何が原因でしょうか? にも同じ動作が見られbodyInRectます。

サンプルコードは次のとおりです。

コンソールログは次のとおりです。

と の両方で、Apple のバグである可能性はnodeAtPointありnodeInRectますか? 信じにくいです。しかし、コードが非常に短いため、どこでミスを犯したのかわかりません。どんな助けでも大歓迎です。

0 投票する
2 に答える
792 参照

ios - SpriteKit Physics: 異なる z 平面上にある場合は無視します

SpriteKit では、互いに衝突する 2 つのノードを持つことができますが、別のノードが導入されると、物理的な動作がどのように変化しますか?

たとえば、次の 3 つのノードがあるとします。
- Object
- Object_Hole
- Player

したがって、プレーヤー (オレンジ色の円) とオブジェクト (青い四角形) を含むシーン:

ここに画像の説明を入力

上記のシーンでは、プレーヤー (円) が重力の影響を受け、オブジェクト (正方形) と衝突します。物理ボディ、カテゴリ、衝突ビットマスクを使用して、これがどのように機能するかを知っています。

ここで、Object_Hole (緑の四角) を紹介します。

ここに画像の説明を入力

上のシーンでは、Object_Hole (緑の四角形) がオブジェクト (青の四角形) の上に重なっています。これは、同じ z 平面またはより高い平面上にあります。

Object_Hole がある領域で、Player (円) のphysicsBody がオブジェクトと衝突しないようにすることはできますか?

オーバーレイ ノードを追加するよりもこれを達成するためのより良い方法がある場合は、お知らせください。そうでなければ、それは可能ですか?

ありがとう!

0 投票する
4 に答える
5221 参照

subclass - スプライト キット: SKNode をサブクラス化して Vehicle クラス (ジョイントを含む複雑なオブジェクト) を作成する方法

SKNode をサブクラス化して、ジョイントで接続された複数のボディ (たとえば、車) を含める方法を (ネイティブに) 考え出した人はいますか?

サブクラスの関節を親シーンのphysicsWorldプロパティに追加する方法はないようです。

また、以下のオブジェクトをコンパイルして実行しようとすると、ジョイントがなくても BAD_EXC_ACCESS エラーが発生します。

ここに投稿された最初の車両コードについて @Smick に感謝します:スプライト キットのピン ジョイントが正しくないアンカーを持っているようです

トラック クラス:

私のシーン: ここに画像の説明を入力

0 投票する
2 に答える
4369 参照

ios - SKNode を UIImage にレンダリングする方法

SpriteKit をいじって、SKNode の「グラブ」を UIImage にキャプチャする方法を見つけようとしています。

UIView (または UIView サブクラス) を使用してlayer、ビューのプロパティを使用してグラフィックス コンテキストにレンダリングしました。

例えば。

SKNode は UIView のサブクラスではないため、レイヤーによってサポートされているようには見えません。

特定の SKNode を UIImage にレンダリングする方法についてのアイデアはありますか?

0 投票する
2 に答える
4579 参照

sprite-kit - SpriteKit で SKEmitterNode とパーティクルを使用して軌跡を作成する

プレイヤーが移動するたびに、作成したパーティクルがプレイヤーに追従するようにしようとしています。私が再現しようとしている効果は、あなたがウェブサイトにいて、あなたのマウスを追うある種のオブジェクトのセットを持っているときのようなものです. プレイヤーの動きに合わせてパーティクルを動かそうとしましたが、意図した効果が再現されていません。助言がありますか?私のコード:

宣言粒子

移動方法

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

ios - iOS7 Sprite Kit シーン全体をアーカイブしてセーブゲームとして使用できますか?

userDataSKNodeのプロパティを見ていると、次のステートメントに気付きました。

スプライト キットは、ノードに格納されたデータに対して何もしません。ただし、ノードがアーカイブされると、データはアーカイブされます。

これは私に考えさせました-シーンとそのすべての依存/コントローラーをアーカイブすることにより、単一のセーブゲーム機能を実装することは可能ですか?

セーブゲームを保存するためのカスタムデータ構造を記述する必要をなくすために、シーンまたはシーンビューに送信できる魔法の [アーカイブ] メッセージがあるかどうかを理解しようとしています。

0 投票する
3 に答える
10147 参照

ios - この SpriteKit セットアップの座標系の何が問題になっていますか?

次のような SKScene サブクラスを提示する SKView を作成しました。

次に、座標系の原点を確認するために、小さな 10x10 色の正方形をシーンに追加します。

左下隅に緑色の四角が表示されます。

左下隅の緑色の点

やはりSpriteKitの座標系は、原点が常に中心になるようになっています。しかし、シーンでは、原点は左下隅にあります。子ノードを {0,0} に追加すると、左下隅にも表示されます。

SKSpriteNode を追加してシーンに {0,0} 配置すると、左下隅に表示されます。ただし、左下隅のシーンの原点を中心にしています (左半分と下半分が切り取られています)。

しかし、今ではもっと混乱しています。SKSpriteNode を別の SKSpriteNode に追加すると、サブスプライトが親の中央に配置されます。

では、シーンの座標系はスプライトの座標系とは異なる働きをするということですか?

要約:

  • スプライトをシーンの {0,0} に配置すると、左下に表示され、50% 切り取られます (原点を中心に)。
  • {0,0} のスプライトにスプライトを配置すると、スプライトの中央に表示されます。

シーンの構成が間違っていますか、それともこのように動作しますか?