2

私はCCSpriteオブジェクトを持っていて、それを別の にコピーしたいと思っていますCCSprite。それでは、そのコピーをお見せしたいと思います。このコードを試してみましたが、実行時エラーが発生します。

CCSprite* copy=CCSprite::spriteWithTexture(original->getTexture());

のコピーを作成するにはどうすればよいCCSpriteですか?

4

5 に答える 5

0

コピーで使用しているときに、オリジナルのテクスチャが削除されないようにする必要があります。

于 2013-01-31T09:54:24.683 に答える
0

重複するスプライトを多数作成する場合は、スプライトをCCArrayに保存してから、関数のスケジュールを使用してスプライトを追加するための関数を再度呼び出す必要があります。

于 2013-01-31T07:25:32.780 に答える
0

あなたはスピードのためにこれをしていますか?

その場合は、「スプライトシート」を使用する必要があります。スプライトシートを使用すると、スプライトフレーム(グラフィックス)のセットがテクスチャメモリにロードされ、これらのスプライトフレームのいずれかでスプライトを作成するたびに、システムは実際にはすでにメモリにある同じテクスチャを使用しています。また、画面上にスプライトを描画する場合、そのテクスチャを使用しているスプライトはすべて「バッチ」で(すべて同時に)描画し、処理サイクルを節約します(高速です)。

例については、このプロジェクトを参照してください。車と猫のスプライトはスプライトシートに読み込まれます: http ://www.gmtdev.com/blog/2011/08/19/how-to-use-box2d-for-just-collision-detection-with-cocos2d-バツ/

于 2013-02-05T22:43:29.040 に答える
0

cocos2dx ではスプライトの clone メソッドが提供されていませんでした。このように最初のスプライトのテクスチャを取得して自分で作成し、そのテクスチャでスプライトを作成する必要がありました。

スプライト *clonedSprite = Sprite::createWithTexture(originalSprite->getTexture());

于 2016-02-10T14:19:33.417 に答える
0

CCObject::copy() を調べましたか?

私はこの手法をアクションのコピーによく使用します。CCSprite は CCObject から派生しているため、まだ試していませんが、スプライト インスタンスで copy() を呼び出すことでスプライトをコピーできる可能性があります。

于 2013-02-03T17:19:16.940 に答える