8
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Cocos2d-xでのパーティクルの扱い方

Last updated at Posted at 2016-03-06

目次

1.はじめに
2.パーティクルを作る
3.実際に描画してみよう!
4.気をつけよう!

1.はじめに

Cocos2d-x のバージョンは3.10で進めさせていただきます

2.パーティクルを作る

まずは素材であるパーティクルが必要になりますのでparticle2dxにアクセスしましょう

Particle2dx

スクリーンショット 2016-03-07 04.17.50.png

**英語ばっかり!!やだ!!!**と思いますが、意外にも設定は簡単だったりします

素材2.png

赤く示した部分をいじると左側に出ているプレビューがちゃんと切り替わり見やすいようになっています

素材3.png

赤く示したタブを切り替えることによって色や形、テンプレートを選んだりすることもできます

スクリーンショット 2016-03-07 04.24.37.png

今回私はタブのTemplateの中にあるFireWorksのfw2で進めて行きたいと思います

自分の描画したいパーティクルが決まったらタブにあるExportを選択しましょう

スクリーンショット 2016-03-07 04.27.36.png

すると生成するplistの名前とテクスチャなしかテクスチャありが選べる画面になります
名前はデフォルトでテクスチャなしを選択してみます
そうするとplistファイルというものが生成されます
plistファイルはそのままプロジェクトのリソースファイルの中に入れてあげましょう

#3.実際に描画してみよう!

ではパーティクルの準備も整ったので実際に描画しましょう!

あとはHelloWorldSceneにコードを書き込むだけ!

HelloWorldScene.cpp
   // 作成したパーティクルのプロパティリストを読み込み
   ParticleSystemQuad* particle = ParticleSystemQuad::create("particle_texture.plist");
   //パーティクルのメモリーリーク回避(★重要)
   particle->setAutoRemoveOnFinish(true);
   // パーティクルを開始
   particle->resetSystem();
   // パーティクルを表示する場所の設定
   particle->setPosition(300,200);
   // パーティクルを配置
   this->addChild(particle);

コード上でもそこまで難しくなく実装することができます
実際にこのコードを動かしてみると・・・

スクリーンショット 2016-03-07 04.47.07.png

とても綺麗なパーティクルが描画されました!

#4.気をつけよう!

先ほど書いたコードの中に

HelloWorldScene.cpp
   //パーティクルのメモリーリーク回避(★重要)
   particle->setAutoRemoveOnFinish(true);

というものがありましたが、このsetAutoRemoveOnFinishはデフォルトでfalseになっています
なのでパーティクルが目に見えなくても実際はそこのあり続けることになってしまいます
パーティクルを使う上でアプリが重くなるのはNGなので必ずtrueに設定しておきましょう!

8
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?