問題タブ [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 投票する
2 に答える
51 参照

objective-c - スプライトキットのゲッター

少し問題があります。紹介させてください: SpriteKit には、MyScene.m と .h ファイルがあります。このクラスには「サイズ」というプロパティがあります。「self.size」を使用して MyScene.m ファイルからアクセスできます。Menu というクラスを作成したので、.m と .h があります。このクラスは「SKNode」のサブクラスです。私の問題は、Menu クラスの MyScene クラスの "size" プロパティの値を取得したいということです。Menu オブジェクトに追加するノードがいくつかあり、それらの位置は MyScene の「サイズ」プロパティに依存するためです。

やり方を教えてください。ありがとうございました

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

objective-c - すべての iOS バージョンのサブクラス化された SKNode オブジェクトの便利なメソッドを作成する

以下のコードを使用して、サブクラス化された SKNode オブジェクトの便利なメソッドを作成しています。これはうまく機能しているようです。私を悩ませているのは、SKNode Class Reference が明示的に -init シンボルが iOS 8.0 以降でのみ使用可能であると述べていることです。私のアプリの展開ターゲットは iOS 7.1 です。

私のコードの init メソッドが iOS7.1 の継承チェーンに転送され、SKNode 独自の便利なメソッド (+ ノード) または初期化子 (- init) によって初期化されたものをバイパスするのではないかと心配しています。iOS のバージョン番号によって、私のコードが多少異なるノード (またはオブジェクト) になる可能性はありますか? これに関連して、私が書くとき:

Xcode 6 のオートコンプリートは、理由を説明せずに「init」に赤い取り消し線を付けます (スクリーンショット)。これは潜在的なバージョンの問題によるものですか、それとも他の理由でしょうか?

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

swift - Swift オプションのバインディングと SKNode.name

各 SKNode の名前を取得するコードを記述するより良い方法はありますか?

名前がなくても機能する(以下を参照)と書くことができますが、オプションをアンラップする力があるため気分が悪い場合。

Swift は安全性がすべてであることは知っていますが、コードに行き詰まっているように感じて、何か足りないものがあるのではないかと思っています。

編集: 私は文字列であることに気付きましたSKNode.nameか? ラップを強制的に解除し、返される値がなく、空の String がある""場合、nil が返されると考えていました。

EDIT2: Antonioによる答えは確かに私が求めていたものですがSKNode.name、ノードがファイルから来ている場合scene.SKS、名前が指定されていなくてもノードは名前""(空の文字列)を取得しているようです。コードを実行すると:

上記のコードを設定して実行すると、 が取得される"Name"""、決して取得されません。"Undefined"eachChild.name = nil"Undefined"*.sks

0 投票する
0 に答える
484 参照

position - スプライトキットで発射物を撃つ

別のスプライト ノード (敵船) から SKSprite ノード (砲弾) を撃ちたいと思っています。砲弾は、敵の船のノードから画面の下部に向かってまっすぐ下に移動する必要があります。位置を正しく設定できないようです。砲弾は画面の隅から発射され、遠くまで移動しないようです。敵船ノードは、画面上のすべてのハローの配列から一度にランダムに選択され、砲弾の位置がそのノードに割り当てられます。ハローの前面:

// 大砲

// 敵艦ノードの配列

任意の入力をいただければ幸いです。

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

ios - スプライト キット SKNode ヒット エリア

初めてのスプライト キット ゲームを作成しています。これまでのところとても良いです - 私はほとんどリリースする準備ができています. ただし、ノードに触れるのが非常に難しいという問題があります(ユーザーにとって)

フロー

  • ノードはサイズ (0,0) で生成されます
  • 次に、ノードは SKActions (scaleTo) で max_size にズームされます
  • ユーザーは (0,0) と (max_size, max_size) の間のポイントでノードをタップします
  • タップを登録してゲーム進行

問題

もちろん、ノードのヒット領域は、現在表示されているスケールファクターと同じ大きさです。つまり、スポーン時にノードをヒットするには、ユーザーは (1,1) ピクセル フィールド (または同様のもの) をヒットする必要があります。

質問

最初から (max_size,max_size) でタップを登録する領域を持つ便利な方法はありますか?

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

ios - SpriteKit - ノードが別のノードの子にヒットしたかどうかを検出し、アクションを実行します

Cat ノードと Bird ノードがあります。鳥のノードは、birdBlock と呼ばれるコンテナ ノードに入れ子になっています。すべてが WorldNode に含まれています。WorldNode に鳥を追加すると、Cat は鳥と適切に対話できますが、鳥が birdBlock にいる場合、Cat は鳥を邪魔にならないように押しのけて飛んでいきます。

私は自分の鳥を見つけるために以下を使用しています:

ブロック内の鳥は正しい名前を持っています。

それらは現在列挙されていますが、画面を飛び回る以外は猫とやり取りしていません。

今私はこれをやっています:

したがって、これも機能しません。スプライトの座標系を変更するにはどうすればよいですか?

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

for-loop - Swift: for ループでの型キャスト

私はSwiftの初心者です。SKNodeTree を反復処理して、ここに恐ろしいモンスター ノードがあるかどうかを確認しようとしています。しかし、for ループをタイプケース化する方法がわかりません。これは「as」句で可能になることを理解しました。

ところで、Swift で == による文字列の比較は大丈夫ですか?