問題タブ [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 に答える
1597 参照

opengl-es - Spritekit と OpenGL: 滑らかな煙の軌跡

キャラクターの背後に滑らかな軌跡がある Spritekit ゲームでこの効果を実現したいと考えています。

ジェットパック ジョイライドでコインの後ろにある軌跡をご覧ください。 ここに画像の説明を入力

Jupiter Jump のヒーローの背後にあるこの軌跡: ここに画像の説明を入力

または、スキー サファリのヒーローの背後にあるこの非常に滑らかなトレイル: ここに画像の説明を入力

これは、他のゲーム エンジンの標準機能のように見えますか? スプライトキット パーティクル エミッターは、スムーズなトレイルではなく、ブロック状/スタンプされたトレイルのみを提供すると思います。ある種のスプライト カスタム シェーダーを使用する必要がありますか? 他に独創的なアイデアはありますか?

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

ios - iOS。SpriteKit: すべてのゲーム シーンで同じエミッタを使用する方法

SpriteKit と Xcode 6 を使用してゲームを開発しています。すべてのゲーム シーンで使用したい単一の sks ファイルがあります。エミッターを提示した後で各シーンに追加すると、エミッターは古いシーンで停止し、新しいシーンで新しいスターが表示されます。これは、エミッターが各シーンで作成されるためです。

そのため、一度だけエミッターを作成し、すべてのゲーム シーンで使用するためにシングルトン クラスを使用しようとしました。すべてのゲーム シーンのスーパー クラスを作成し、そのスーパー クラスですべての子シーンのエミッタを作成します。しかし、この手順で取得しようとしたことは機能していません。エミッターは、各シーンで引き続き新規作成されるため、新しいシーンごとに停止して新しく開始します。

同じエミッターを使用して一度だけ作成し、エミッターを停止して新しく開始することなく、すべてのゲームシーンで使用するにはどうすればよいですか?

ここに私のコード。私は何が欠けていますか?

PS 同じ手法がオーディオ プレーヤーでもうまく機能します。http://www.galloway.me.uk/tutorials/singleton-classes/

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

ios - SKEmmitterNode が初回実行後に実行されない

以下のコードで効果を作成しました。テストとしてこれを起動するボタンを配線しました。最初に押すと、効果は意図したとおりに機能します。ただし、後続のすべてのリクエストでは、効果は表示されません。ブレークポイントを介して、効果が呼び出され、最初とその後の実行の両方で完了ハンドラーに組み込まれていることがわかりました。また、runAction の一部として「totalTime」変数を確認し、最初の実行とその後の実行の両方で同じ (2 秒) であることを確認しました。興味深いことに、最初の実行では、前の if ステートメントと完了ハンドラーのブレーク ポイントの間に数秒の遅延が見られます。ただし、後続のすべての実行では、先行する if と完了ハンドラーの間に実質的に遅延はありません。繰り返しますが、すべての実行で持続時間が 2 秒であることを確認しました。最後に、コメントアウトすると[self.view setPaused:YES]完了ハンドラーでは、エフェクトが毎回実行されます。繰り返しますが、以下のコードによって、シーンが以前に一時停止されていないことがわかります。これは時折の効果であり、余分な CPU を使用したくないため、この方法でシーンを一時停止しています。したがって、これらの効果が生成されていない時間の大半はバッテリーを消費します。

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

objective-c - spriteKit でパーティクルをパスに追従させることができませんでした

これは XCode SKEmitter エディターでのアニメーションです (iPhone で実現したい) :

ここに画像の説明を入力

これは iPhone のアニメーションです (このアニメーションは必要ありません)。

ここに画像の説明を入力

このコードの使用:

これはエミッタの設定です:

ここに画像の説明を入力

この質問を参考にrunActionとparticleActionの両方を試してみたのですが、思い通りにいかない...

-----------------アップデート-------------------------------- --------------

hamobi で言及されている解決策を試しました(まだ機能しません):

ここに画像の説明を入力

-----------------アップデート 2 ------------------------------- ---------------

とった!Thx to hamobi :D これが結果です :D:D

ここに画像の説明を入力

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

ios - SpriteKit SKEmitterNode targetNode クラッシュ EXC_BAD_ACCESS

コンテキスト

はファイルSKEmitterNodeから作成され、sksスプライトの子として追加されます。エミッタのtargetNodeは、シーン内の他のノードに設定されています。

クラッシュ

クラッシュは 64 ビット デバイスでのみ発生します。ログは次のとおりです。

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

ios - 子ノードであっても、SpriteKit のシーンでパーティクルに動きを追跡させます

このプロジェクトと同じ効果が欲しい

しかし、私のパーティクルSKEmitterNodeは直接シーンにあるのではなく、子ノードにあります。パーティクルは宇宙船の背後にあるリアクター エフェクトであり、SpaceShip ノードが移動するときにシーンに痕跡を残すようにします。

現在、パーティクルは SpaceShip の子ノードであるため、「すべての」パーティクルは SpaceShip とともに移動するため、点のみが表示され、跡は残りません。

どうすればできますか?

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

sprite-kit - SpriteKitでフェードラインを描画しますか?

現在使用している方法よりも、フェードラインを描画するためのより良い方法があるかどうかを調べようとしています。

現在、画面上を移動できるフェード ラインを描画するために、SKEMitterNodes を使用しています。ただし、SkEmitterNodes は非常に CPU コストが高くなります。画面上を移動しながら太い線を維持できるように、300 の出生率があります。このフェードライン描画効果をより良く達成するためのより良い方法を知っている人はいますか?

私が求めている効果は、Dark Echo で描かれている線に似ています。ここにビデオがあります。https://www.youtube.com/watch?v=tuOC8oTrFbM

ありがとう、クリス