Git Product home page Git Product logo

06_particle2dx_js's People

Forkers

quatmo

06_particle2dx_js's Issues

### その3 プリセットのParticleFireを使用する

CPU負荷が大きいので観察したら、コメントアウトか消すこと。

//プリセットのParticleFireを使ってみる CPU負荷が大きいぞ!
var fireParticle = new cc.ParticleFire();
fireParticle.setPosition(size.width/2,size.height/4);
this.addChild(fireParticle,20);
//  fireParticle.setTexture(cc.Sprite.create(res.DotTexture_png).getTexture());
//パーティクルの寿命終了時にはレイヤーから削除
fireParticle.setAutoRemoveOnFinish(true);

HealとSlipスキル追加

Heal(回復) 属性は Radiusモードで作成。

  • Motion
    • Duration 1
    • Lifetime 0.1 0.7
    • EmmisionRate 40
    • Angle 180 180
    • MaxRadius 106 0
    • MinRadius 123 0
    • Rotate/Sec 132 0
  • Color & Shape
    • Shape
      image
    • Color
      • Start Size 156 212
      • End Size 191 153
      • Start Red 1 0
      • End Red 0.75 0
      • Start Green 1 0
      • End Green 0.89 0.34
      • Start Blue 0.2 0.2
      • End Blue 0.4 25

image

その1 多くのパラメータを実装する例

//重力をシミュレーションしたパーティクル
particle.setEmitterMode(cc.ParticleSystem.MODE_GRAVITY);
//パーティクルの出現場所の分散度(ばらつき具合)。(X方向の幅、y方向の幅))
particle.setPosVar({x:50,y:100});
//1秒間に放出するパーティクルの数
particle.setEmissionRate(120);
//パーティクルを出力する期間 -1は無限
particle.setDuration(0.2);
//パーティクルが消えるまでの時間
particle.setLife(0.2);
particle.setLifeVar(0.2);
//パーティクル出現時の大きさ
particle.setStartSize(0);
//パーティクル出現時の大きさの分散度
particle.setStartSizeVar(50);
//パーティクル寿命終了時の大きさ
particle.setEndSize(0);
//パーティクル寿命終了時の大きさ
particle.setEndSizeVar(0);
//パーティクルの出力方向
particle.setAngle(90);
//パーティクルの出力方向の分散度
particle.setAngleVar(10);
//パーティクル出現時の色
particle.setStartColor(cc.color(255, 255, 128, 255));
//パーティクル出現時の色の分散度
particle.setStartColorVar(cc.color(5, 5, 5, 0));
//パーティクル寿命終了時の色
particle.setEndColor(cc.color(0, 0, 0, 255));
//パーティクル寿命終了時の色の分散度
particle.setEndColorVar(cc.color(0, 0, 0, 0));
//パーティクルの生成位置
particle.setPosition(150,size.height/2);
//パーティクルの寿命終了時にはレイヤーから削除
particle.setAutoRemoveOnFinish(true);
//パーティクルの形と基本の色
particle.setTexture(cc.Sprite.create(res.HealTexture_png).getTexture() );

炎のパーティクル 

その5 Particle2dxの背景用にスクリーンショットを作成する

Particle2dxの背景用に火、水、木属性のキャラクターと敵キャラクターを配置する。
配置し終えたら、画面表示させ、スクリーンショットを保存する。(PNG画像)
Particle2dx用にスクリーンショットを加工。
Particle2dxで画面サイズを800×600のサイズにする。
画面サイズの並びの「background」をクリックすると、背景用のカラーパレットとαブレンドのスライダー、背景用の画像のアップロード領域が表示される。
「background DropPNG」と表示された枠内に、上記のスクリーンショットをドラッグ&ドロップでアップロードして背景に設置する。

その6 Particle2dxで火属性のパーティクルを作成する

http://particle2dx.com/
画面サイズ 800×600
Background image particle2dx_background_sample01.png
(画面サイズを800×600にしてから、imageをドロップしないとうまく配置されないので注意せよ)

水の属性、木の属性スキルを実装する

var size;
var gameScene = cc.Scene.extend({
  onEnter: function() {
    this._super();
    var layer0 = new fieldLayer();
    var layer1 = new gameLayer();
    var layer2 = new charaLayer();
    var layer3 = new particleLayer();
    this.addChild(layer0);
    this.addChild(layer1);
    this.addChild(layer2);
    this.addChild(layer3);

  }
});

//デバッグ用ラベル
var debugText;
var gameLayer = cc.Layer.extend({
  sprite: null,
  ctor: function() {
    this._super();
    size = cc.winSize;
    //デバッグ用ラベルをcreate
    debugText = cc.LabelTTF.create("debug","Arial","32", cc.TEXT_ALIGNMENT_CENTER);
    this.addChild(debugText);
    debugText.setPosition(450,size.height - 20);
    return true;
  },

});

var fieldLayer = cc.Layer.extend({
  ctor: function() {
    this._super();

    var size = cc.director.getWinSize();

    var sprite = cc.Sprite.create(res.ss_BattleScene_bg1);
    sprite.setPosition(size.width / 2, size.height / 2);
    sprite.setScale(0.8);
    this.addChild(sprite, 0);
  }
});

var charaLayer = cc.Layer.extend({
  ctor: function() {
    this._super();

    var size = cc.director.getWinSize();

    //水キャラクターを追加
    var sprite11 = cc.Sprite.create(res.chara_princessselect_11);
    sprite11.setPosition(size.width * 0.25, size.height * 0.4);
    sprite11.setScale(0.8);
    this.addChild(sprite11, 0);

    //火属性のキャラクター
    var sprite10 = cc.Sprite.create(res.chara_princessselect_10);
    sprite10.setPosition(size.width * 0.3, size.height * 0.3);
    sprite10.setScale(0.8);
    this.addChild(sprite10, 0);

    //木属性キャラクター
    var sprite12 = cc.Sprite.create(res.chara_princessselect_12);
    sprite12.setPosition(size.width * 0.15, size.height * 0.25);
    sprite12.setScale(0.8);
    this.addChild(sprite12, 0);

    //火属性 敵サコキャラクター
    var sprite1 = cc.Sprite.create(res.chara_enemy_1);
    sprite1.setPosition(size.width * 0.65, size.height * 0.45);
    sprite1.setScale(1.2);
    this.addChild(sprite1, 0);
    //水属性 敵サコキャラクター
    var sprite2 = cc.Sprite.create(res.chara_enemy_2);
    sprite2.setPosition(size.width * 0.70, size.height * 0.35);
    sprite2.setScale(1.2);
    this.addChild(sprite2, 0);
    //火属性 敵サコ中ボスキャラクター
    var sprite4 = cc.Sprite.create(res.chara_enemy_4);
    sprite4.setPosition(size.width * 0.85, size.height * 0.40);
    sprite4.setScale(1.2);
    this.addChild(sprite4, 0);
  }
});

//パーティクル用のレイヤー
var particleLayer = cc.Layer.extend({
  skillSelect: 0,
  skillLevel: 1,
  skillCnt: 1,

  ctor: function() {
    this._super();
    size = cc.winSize;
    this.scheduleUpdate();
    return true;
  },
  update: function(_dt) {

    if (this.skillCnt == 1) {

      debugText.setString("this.skillCnt:"+this.skillCnt
      + " skillSelect:"+this.skillSelect
      + " skillLevel:"+this.skillLevel
    );

      this.skillParticle(this.skillSelect, this.skillLevel, 350, 100);
    }
    if ((this.skillCnt % 60) == 0) {
      this.skillCnt = 0;
      this.skillLevel++;
      this.skillLevel = this.skillLevel  % 5;

      this.removeAllChildren();
      if (this.skillLevel == 0) {
        this.skillLevel++;
        this.skillSelect++;
        this.skillSelect = this.skillSelect % 3;
      }

    }
    //フレームをカウントする
    this.skillCnt++;
    /*
    debugText.setString("this.skillCnt:"+this.skillCnt
    + " skillSelect:"+this.skillSelect
    + " skillLevel:"+this.skillLevel);
*/
  },

//属性とスキルレベルと座標を与えてパーティクルを生成する関数
  skillParticle: function(attrib, rare, x, y) {

    //debugText.setString("attrib:"+attrib);

    var skillName = ["Fire", "Water", "Wood"];
    var sName = "res." + skillName[attrib] + "Texture" + rare + "_plist";

    debugText.setString(sName);

    var tempParticle = new cc.ParticleSystem(eval(sName));
    tempParticle.setPosition(x, y);
    this.addChild(tempParticle, 20);
    tempParticle.setAutoRemoveOnFinish(true);
  },


});

### その4 プリセットのParticleFireに設定を追加する

//プリセットのParticleFireを使ってみる CPU負荷が大きいぞ!
var fireParticle = new cc.ParticleFire();
fireParticle.setPosition(size.width/2,size.height/4);
this.addChild(fireParticle,20);
fireParticle.setTexture(cc.Sprite.create(res.DotTexture_png).getTexture());
//1秒間に放出するパーティクルの数
fireParticle.setEmissionRate(0.3);
//パーティクルの出力方向の分散度
fireParticle.setAngleVar(30);
//パーティクルが消えるまでの時間
fireParticle.setLife(2);
//パーティクルの寿命終了時にはレイヤーから削除
fireParticle.setAutoRemoveOnFinish(true);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.