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

ios - 物理がシミュレートされる前にパーティクルを放出する SKEmitterNode

パーティクルの軌跡を残すために、プレーヤーの中心に SKEmitterNode を配置しています。私のプレーヤーには物理ボディがあり、手動で位置を更新するのではなく、物理によって動かされます。

私が抱えている問題は、プレーヤーの速度が上がると、パーティクルがプレーヤーの後ろのポイントから放出されることです。フレームサイクルの「アクションの評価」部分でパーティクルが放出されるため、これが発生していることを発見しました。その後、私のプレーヤーは「物理シミュレーション」の部分に動かされます。

回避策として私が見つけた解決策は、SKEMitterNode (アップデート コールバック内) を、物理計算後にプレイヤーがいるポイントに移動することです。これは私が使用したコードです:

更新
最初は、エミッターをプレーヤーの子ノードとして使用していましたが、問題が発生したときです。
また、最後の更新以降に移動した距離 (速度 * dt) を考慮せずに、エミッターの位置をプレーヤーの位置に正確に同期しようとしましたが、同じ問題がありました。

私の質問は、これを解決する正しい方法は何でしょうか?

更新 2
問題を示すプレイグラウンドを作成しました。ここでは、プレイヤーの子としてエミッターを持っています。プレイヤーの速度を上げるほど、プレイヤーと放出されたパーティクルとの間のギャップが大きくなります。
https://github.com/ovidiupruteanu/SKEmitterNodeTest-Playground


アップルドキュメントのフレームサイクルは次のとおりです ここに画像の説明を入力

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

ios - iPhone 6で粒子エミッターが超遅い

iOS スプライト キット + パーティクル エミッターを使用するゲームを作成しています。私のシミュレーターでは完全に問題なく動作しますが、iPhone 6 でゲームを実行すると、非常に遅くてラグが多く、操作がほとんどできません。

シミュレーターが私の電話と大きく異なる理由と、それを修正する方法についての提案はありますか? ヒントをいただければ幸いです。

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

ios - SKEmitterNode のパーティクルの更新速度は既にリリースされています

で使用SKEmitterNodeしてSprikeKit、パーティクルが解放された後にパーティクルの速度/アルファを変更することは可能ですか?

私が探しているのは、パーティクルを放出するパーティクル エミッタです。これらのパーティクルは静的ですが、x 秒後に動き始めます。これは可能ですか?

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

sprite-kit - デバイスでシミュレーションを進めるときの exc_bad_access

このエラーは、実際のデバイスでのみ発生します。Xcode 6 のシミュレーターで実行すると、クラッシュしません。

私は宇宙空間を作成しており、ランダムな流れ星が空を横切って流れています。シーンでは、[goToSpace] が呼び出され、3 つの SKEmitterNodes を使用して深さをシミュレートすることでスターフィールドをセットアップします。次に、タイマーが初期化され、スター シューティングが送信されます。

スターフィールドの初期化では、満天の星空を得るために 3 つの SKEmitterNode のシミュレーションを進める必要があります。[emitterNode1 AdvanceSimulationTime:lifetime] という行を呼び出すと、exc_bad_access が取得されます。チュートリアルに従って NSZombie を有効にしましたが、役に立ちませんでした。

なぜexc_bad_accessを取得しているのかを追跡することはできません。このスタックを提供する Parse.com の Crash Reporting を使用します。

関連コード:

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

ios - 再生が終了した後、エミッタ ノードを親から手動で削除する必要がありますか?

現在、ゲーム内でスプライトが別のスプライトと衝突すると、パーティクル エフェクトが表示されます。

私はこのコードスニペットを持っています:

作成したパーティクルの発生率は 1000 で、最大 100 です。パーティクル エミッタ ノードの位置を、スプライトが現在画面上にある場所に設定します。次に、パーティクル レイヤー ノードの子として追加します。

私の質問は、終了後にパーティクル エミッタ ノードをその親から手動で削除する必要がありますか? それとも、スプライト キットは、再生が終了すると自動的に削除されますか?

私のプロジェクトはスプライト同士が頻繁に衝突するように設計されているため、メモリ リークを防ぐためにこれを手動で処理する必要があるかどうかを確認したいと思います (既に再生が終了した子エミッタ ノードが多数あるパーティクル レイヤー)。

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

sprite-kit - SKEmitterNode の問題 - sks ファイルで作成された色が表示されない

エミッターを表示する以下の機能があります。関数に渡された色に基づいて、エミッタに使用するファイルを選択することになっています。sks ファイルは作成され、色に基づいて名前が付けられており、Xcode で適切な色で表示されます。

ただし、シミュレーターまたはデバイスで実行すると、sks ファイルの色が適用されているようには見えません。どの色が渡されても、エミッターは同じパーティクル カラーを表示します。ところで、これは火花ベースのエミッターです。

私が間違っているかもしれないアイデアはありますか?

助けてくれてありがとう - ケン

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

performance - iOS パーティクル エミッター - 高速化するには?

画面上に 9 つのブロックがあり (BlockView は、物事を追跡するためのいくつかのプロパティを持つビューのサブクラスにすぎません)、各ブロックの上部に煙のパーティクル エミッターを追加して、各ブロックの上部から煙が立ち上るのを追加したいと考えています。 . ブロックとパーティクル エミッターを保持するビューを作成し、ブロックをサブビューの前面に移動して、ブロックが前面にくるようにします。ただし、これにより、デバイス (iphone 6) が非常に遅くなり、パン ジェスチャでブロックを移動することが非常に困難になります。

SmokeParticles.sks: 発生率 3 (最大 0 に設定)、寿命 10 (範囲 100)、コードで設定された位置範囲。

各ビューにパーティクル エミッタを追加するための私のコードは次のとおりです (パーティクル エミッタはあまり得意ではないので、アドバイスをいただければ幸いです! :D)