問題タブ [skemitternode]

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

objective-c - Spritekit でこのアニメーションを実現するにはどうすればよいですか?

質問:

Spritekit でこのアニメーションを実現するにはどうすればよいですか?

ここに画像の説明を入力

私がやったこと:

ここに画像の説明を入力

問題:

1) 4 つの花びらすべてを描くことができますが、指を離して円を描くと、指を離した前のポイントから新しいタッチの始点まで線が作成されます。以下の gif を参照してください。

ここに画像の説明を入力

2) ビューからオレンジ色の実線を段階的に削除する方法 (私の場合はあまりにも唐突です)。

3) .sks ファイルのプロパティを調整する必要があります。

4) https://stackoverflow.com/questions/29792443/set-the-initial-state-of-skemitternode

これは私のコードです:

これは私の .sks ファイルのプロパティです:

ここに画像の説明を入力 ここに画像の説明を入力

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

ios - スプライト キット パーティクル エミッタの形状

テクスチャ イメージ (png) ではなく、形状 (ソリッド形状/コア グラフィックス?) を生成するようにパーティクル エミッタを設定するにはどうすればよいですか?

ドキュメントManipulating the Particle Emitterでは、テクスチャ イメージのみを設定できるようです。

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

ios - SKEmitterNode.particleBirthRate を EaseIn/Out する方法

SKEmitterNode を使用して、タップ時にいくつかのパーティクルを放出しています。Periscope のハートに似た効果を求めています。

エミッターを追加すると、「オン」になったように動作しないことがわかりました。つまり、パーティクルは、スポーン ポイントから離れた場所にフル アルファで表示されます (あたかもしばらく生きていたかのように)。エミッターが実行されているかのように、突然表示されました。

私が求めているのは、タップ -> ノードの追加 -> ポイントからの放射の開始 -> しばらくの間の放射 -> 停止 -> ノードの削除です。

GCDを使用してparticleBirthRateを調整してみました:

次に、SKActionが適切なツールである可能性があります(おそらく...)

これは明らかにエミッタ ノードをフェード アウトさせますが、「シャット オフ」するのではありません。

私は CAEmitterLayer を使用することにオープンです。私もそれを試しましたが、同じ問題に遭遇しました。


更新: 解決策が 1 つ見つかりました: resetSimulation です。

これは私が求めていたものを達成します。可能であれば、これに SKAction を使用したいと思っています。

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

ios - SKEmitterNode パーティクルは開始時に遅れます

私は自分の小さなゲームで SKEmitterNode をいじっています。キャノン ボールを撃っていて、ボールがシーン内のボックスの 1 つに当たると、ボックスが破壊され、単純なテクスチャ「BOOM」のパーティクル エフェクトが作成され、ボックスが消えるときにトランジションが発生します。問題は、エミッタを起動するとすぐにパーティクルの放出が開始されることを期待しているのですが、そうではなく、0.5 ~ 1 秒の短い遅延の後にパーティクルが再生されることです。

エミッタを作成するための私の関数は次のとおりです。

その後、衝突時に、この関数が呼び出されます。ここで、position は死にかけているオブジェクトの位置であり、scene は死にかけているオブジェクトの親シーンです。

アクション リストが追加され、PARTICLE_DIE_DURATION_RANGE のランダム値で PARTICLE_DIE_DURATION の後にエミッターが消えます。

私が理解しているように、エミッターがシーンにアタッチされるとすぐに、パーティクルの放出が開始されるはずです。しかし、最初に述べたように、これは事実ではなく、パーティクルは 0.5 ~ 1 秒後に表示され始めます。作成されたパーティクルは、拡大してゆっくりと回転する単なるテクスチャですが、遅延は設定されていません (それができるかどうかさえわかりません)。

誰かが同じ行動をしたか、私が間違っていることを提案していますか? 助けていただければ幸いです:)

乾杯、TK

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

macos - starfield の SKEmitterNode... スプライトは不透明ではありません

私は、スター フィールドをレンダリングする背景として SKEmitterNode を持つ Swift の SpriteKit ゲームに取り組んでいます。

いくつかの SKSpriteNodes (すべてではない) を背景の SKEmitterNode に対して不透明にしようとしていますが、その方法がわかりません。アルファ値を 1.0 に設定しても役に立ちません。zPosition を +1 (および SKEmitterNode では -1) にしても役に立ちません。私は何が欠けていますか?

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

swift - SKEmitterNode がシーンの再起動時にクラッシュを引き起こす

プレイヤーが死亡した後、プレイヤーにアタッチする SKEmitterNode を作成しました。とてもシンプルな燻製です。問題は、次のいずれかのときにゲームがクラッシュすることです。

1) リトライ ボタンを押して同じシーンに遷移すると、ランダムな時間に EXC_BAD_ACCESS エラーでゲームがクラッシュします。

2) ホーム画面に戻り、プレイを押して、少なくとも 1 回死亡し、エミッタ ノードを作成した後、そのゲーム シーンに移行します。

現在、SKEMitterNode はオプションのクラス変数です。プレイヤーが死亡すると、SKEMitterNode をセットアップしてシーンにアタッチします。

「self.addChild(deathEmitter)」は、シーンをリロードした後にクラッシュします (煙は表示されます)。これは、SKEMitterNode ドキュメントのサンプル コードがエミッタ ノードを追加する方法と同じです。

また、Player スプライトの removeFromParent メソッドをオーバーライドし、シーンを移行する前に自分で「removeFromParent」を実行するなど、さまざまな修正を試みました。

これを行った後、最初にホーム画面に戻ってからゲームシーンに戻るときにのみクラッシュが発生します。つまり、それがコメントアウトされていれば、何度でも何度でもクイック リトライを実行できますが、ホーム シーンに戻ってゲーム シーンに戻ると、やはりクラッシュします。また、このようにクラッシュすると、クラッシュする前の最後のメソッドがスタック トレースに表示されます。

アイデアや感謝があれば教えてください!

PS: トランジション中は何も変なことはしません。トランジションをインスタンス化し、次のシーンをプッシュするだけです。私は SpriteKit に頼って、すべてのクリーニングを処理してもらいました。

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

swift - パーティクルエフェクト後にスプライトノードを画面から削除する方法

衝突が発生したときに「爆発」させたいノードにパーティクル エフェクトをアタッチして、ゲームを終了させました。その後、シーンをゲーム オーバー シーンに変更します。前のシーンが一時停止すると、パーティクル エフェクトは発生しませんが、一時停止しないように設定したので、衝突が発生し続け、ゲームが前のシーンに戻り続けるため、ゲーム オーバー シーンは表示されません。これを克服するために、追加できると思いまし た。rocket.removeFromParent()これ以上衝突が発生しないようにしますが、これは粒子効果が発生しないことを意味します。パーティクル効果が発生するようにする方法はありますか?その後、両方を使用できるようにロケットが削除されますか? これが理にかなっていることを願っています!