1

パーティクル システムを作成し、作成したパーティクルを保持する必要があります。作成したパーティクルをiPhoneの加速度計で振る/動かす必要があります。また、パーティクルの数を非常に多くする必要があります (砂を表示する必要があります!)。

OpenGLES プログラミングの経験はありません。

最初の検索の後、Cocos2D をパーティクル生成に使用できることがわかりました。しかし、CCParticle システムでパーティクルを保持する方法はありません。回避策として、パーティクル生成の最後に多数のスプライトを作成して、それらをパーティクルとして表示するようにしました。ただし、加速度計で少数のスプライトを移動すると、フレームレートが大幅に低下します。

これを実現する方法と、他のフレームワークを探す必要があるかどうか、または同様のデモ コードが利用可能かどうかを提案してください。

ありがとう、スワプニル

4

3 に答える 3

5

Core Animation を使用して優れたパーティクル システムを作成できるCAReplicatorLayerを見てみましょう。Apple は、私が iPadに移植した Macのこの良い例を持っています。

于 2010-05-26T20:51:47.370 に答える
5

iPhone 用 OpenGL ES のオープン ソース パーティクル ジェネレータであるiphoneparticlesをご覧ください。どのように作成されたかを知りたい場合は、ソース コードを確認してください。

また、この記事で紹介したデモ アプリのソース コードも参照してください。71 Squaredによって作成された Particle Emitter クラスを使用します。

于 2010-05-26T13:02:27.257 に答える
1

言及されたすべてのアプローチを試しましたが、私が達成しようとしているものには合いません。

パーティクルを作成する限り、問題はありません。しかし、それらをスプライトとして使用し始めて (または粒子が消えると新しいスプライトを作成し)、加速度計でそれらを移動すると、砂の粒子の数が膨大になるため、パフォーマンスが非常に悪くなります。

だからここに私がしようとしている回避策があります:

サイズが 320 * 480 の各スプライトで巨大なスプライト シートを作成し、砂がさまざまな位置/方向に散らばっていることを示し、加速度計の入力に従ってスプライトを変更します。

私はこれが不十分な回避策のように聞こえることを知っていますが、小さなスプライト シート POC を作成しましたが、それほど悪くはありません。

この回避策に何らかの欠陥があると思われる場合、または他のアプローチを使用する必要がある場合はお知らせください。

ありがとう、スワプニル

于 2010-05-31T15:44:30.337 に答える