MOG_TitleParticles.js【中文注解】【标题粒子效果】


//=============================================================================

// MOG_TitleParticles.js

// 标题界面粒子效果及魔法圈

//=============================================================================

/*:

 * @plugindesc (v1.1) 在初始化页面创建出粒子,利用粒子制作动画

 * @author Moghunter

 *

 * @param ParticleNumber

 * @desc Quantidade de partículas na tela.//粒子个数

 * (Default - 25)

 * @default 25

 *

 * @param X axis Speed

 * @desc Velocidade da partícula na horizontal.//粒子水平速度

 * @default 1

 *

 * @param Y axis Speed

 * @desc Velocidade da partícula na vertical.//粒子垂直速度

 * @default -2

 *

 * @param A Speed

 * @desc Velocidade do ângulo das partículas.//粒子角速度

 * (Default - 0.02)

 * @default 0.02

 *

 * @param Blend Mode

 * @desc Tipo de Blend. (0 a 2)//图像混合模式

 * @default 1

 *

 * @param OX

 * @desc Definição da origem X das partículas. (0.5 - Centralizado / 1.0 - Normal)//粒子锚点X

 * @default 1.0

 * 

 * @param OY

 * @desc Definição da origem Y das partículas. (0.5 - Centralizado / 1.0 - Normal)//粒子锚点Y

 * @default 1.0

 * 

 * @param Magic Circle Visible

 * @desc Ativar o sprite do circulo mágico.  (true / false)//魔法圈是否可见

 * É necessário ter o arquivo Magic_Circle.png//需要Magic_Circle.png

 * @default false

 * 

 * @param Magic Circle OX

 * @desc Definição da posição X-axis do circulo mágico.//魔法圈锚点X

 * @default 0

 * 

 * @param Magic Circle OY

 * @desc Definição da posição Y-axis do circulo mágico.//魔法圈锚点Y

 * @default 0

 * 

 * @param Magic Circle A Speed

 * @desc Definição da velocidade de rotação do circulo mágico.//魔法圈转速

 * (Default - 0.01)

 * @default 0.01

 * 

 * @param Magic Circle Blend Type

 * @desc Tipo de Blend. (0 a 2)//魔法圈混合类型

 * @default 1

 * 

 * @help  

 * =============================================================================

 * +++ MOG - Title Particles (v1.1) +++

 * By Moghunter 

 * https://atelierrgss.wordpress.com/

 * =============================================================================

 * Adiciona partículas animadas na tela de título

 * alem da opção de ativar o circulo mágico.

 * É necessário ter o arquivo Particles.png na pasta.

 *

 * img/titles2/

 *

 * =============================================================================

 * ** Histórico **

 * =============================================================================

 * v1.1 - Melhoria na codificação.

 * 

 * 

 */

//=============================================================================

// ** PLUGIN PARAMETERS

//=============================================================================

  var Imported = Imported || {};

  Imported.MOG_Title_Particles = true;

  var Moghunter = Moghunter || {}; 

   Moghunter.parameters = PluginManager.parameters('MOG_TitleParticles');

    Moghunter.title_particle_number  = Number(Moghunter.parameters['ParticleNumber'] || 25);

    Moghunter.title_particle_sx = Number(Moghunter.parameters['X axis Speed'] || 1);

    Moghunter.title_particle_sy = Number(Moghunter.parameters['Y axis Speed'] || 1);

    Moghunter.title_particle_a = Number(Moghunter.parameters['A Speed'] || 0.02);

    Moghunter.title_particle_blend_mode  = Number(Moghunter.parameters['Blend Mode'] || 1);

    Moghunter.title_particle_anchor_x = Number(Moghunter.parameters['OX'] || 1.0);

    Moghunter.title_particle_anchor_y = Number(Moghunter.parameters['OY'] || 1.0);

    Moghunter.title_particle_circle = (Moghunter.parameters['Magic Circle Visible'] || true);

    Moghunter.title_particle_circle_x = Number(Moghunter.parameters['Magic Circle OX'] || 0);

    Moghunter.title_particle_circle_y = Number(Moghunter.parameters['Magic Circle OY'] || 0);

    Moghunter.title_particle_circle_a = Number(Moghunter.parameters['Magic Circle A Speed'] || 0.01);

    Moghunter.title_particle_circle_blend = Number(Moghunter.parameters['Magic Circle Blend Type'] || 1);



//=============================================================================

// ** Scene Title

//============================================================================= 



//==============================

// * Create

// * 重写Scene_Title原型中createBackground

// * 新增create_particles、create_magic_circle

//==============================

var _alias_mog_title_particles_createBackground = Scene_Title.prototype.createBackground;

Scene_Title.prototype.createBackground = function() {   

    _alias_mog_title_particles_createBackground.call(this);

    this.create_particles(); //创建粒子

    this.create_magic_circle(); //创建魔法圈

  };



//==============================

// * Update

// * 重写Scene_Title原型中update

// * 新增update_particles、update_magic_circle

//==============================

var _alias_mog_title_particles_update = Scene_Title.prototype.update;

Scene_Title.prototype.update = function() {

    _alias_mog_title_particles_update.call(this);

    this.update_particles(); //更新粒子

    this.update_magic_circle(); //更新魔法圈

};  



//==============================

// * Create Particles

//==============================

Scene_Title.prototype.create_particles = function() {

    var _sprite_particles_img = ImageManager.loadTitle2("Particles"); //粒子图片img\titles2\Particles.png

    this._sprite_particles = [];

    this._sprite_particles_data = [];   

    for (i = 0; i < Moghunter.title_particle_number; i++){ //title_particle_number粒子数量,默认25

      this._sprite_particles.push(new Sprite(_sprite_particles_img));

      this.addChild(this._sprite_particles[i]);

      this._sprite_particles_data[i] = []

      this.reset_particles(i);

      this._sprite_particles[i].x = Math.floor((Math.random() * Graphics.boxWidth));

      this._sprite_particles[i].y = Math.floor((Math.random() * Graphics.boxHeight));

      this._sprite_particles[i].opacity = 0;

      this._sprite_particles[i].anchor.x = Moghunter.title_particle_anchor_x;

      this._sprite_particles[i].anchor.y = Moghunter.title_particle_anchor_y;

      this._sprite_particles[i].blendMode = Moghunter.title_particle_blend_mode;

    };

};



//==============================

// * Reset Particles

// * 重置粒子

//==============================    

Scene_Title.prototype.reset_particles = function(i) {

    this._sprite_particles_data[i][0] = Math.floor((Math.random() * 2) * Moghunter.title_particle_sx) //x轴移动速度title_particle_sx

    this._sprite_particles_data[i][1] = Math.floor((Math.random() * 2) * Moghunter.title_particle_sy) //y轴移动速度title_particle_sy

    this._sprite_particles_data[i][2] = ((Math.random() * Moghunter.title_particle_a)); //粒子角速度

    this._sprite_particles[i].opacity = 0;

    this._sprite_particles[i].x = Math.floor((Math.random() * Graphics.boxWidth));

    var pz = ((Math.random() * 0.5) * 1);

    this._sprite_particles[i].scale = new PIXI.Point(0.5 + Number(pz), 0.5 + Number(pz));

    /**

     * y轴速度的正负值,决定粒子初始位置

     */

    if (Moghunter.title_particle_sy < 0) {

        this._sprite_particles[i].y = Graphics.boxHeight + this._sprite_particles[i].height * 2;

    }

    else if (Moghunter.title_particle_sy > 0)

    {

        this._sprite_particles[i].y = -this._sprite_particles[i].height * 2;

    }

    else {

        this._sprite_particles[i].y = Math.floor((Math.random() * Graphics.boxHeight));

    }

    if (this._sprite_particles_data[i][0] == 0 && this._sprite_particles_data[i][1] == 0) {

        this._sprite_particles[i].x = -this._sprite_particles[i].width * 5;

        this._sprite_particles_data[i][0] = 9999;

        this._sprite_particles_data[i][1] = 9999;

    };

}

//==============================

// * Reset Particles C

// * 粒子重置检测

//==============================    

Scene_Title.prototype.reset_particles_c = function(i) {

    //if (this._sprite_particles_data[i] == null) {return false};

    if (this._sprite_particles[i].x < -this._sprite_particles[i].width * 2 || this._sprite_particles[i].x > Graphics.boxWidth + this._sprite_particles[i].width * 2) {return true};

    if (this._sprite_particles[i].y < -this._sprite_particles[i].height * 2 || this._sprite_particles[i].y > Graphics.boxHeight + this._sprite_particles[i].height * 2 ) {return true};

    return false;

}

//==============================

// * Update Particles

// * 横纵向移动、透明度改变、转动

//==============================

Scene_Title.prototype.update_particles = function() {   

   for (var i = 0; i < this._sprite_particles.length; i++) {

        this._sprite_particles[i].x += this._sprite_particles_data[i][0];

        this._sprite_particles[i].y += this._sprite_particles_data[i][1];

        this._sprite_particles[i].opacity += 2;

        this._sprite_particles[i].rotation += this._sprite_particles_data[i][2];

        if (this.reset_particles_c(i)) { this.reset_particles(i);};

    };

};

//==============================

// * Create Magic Circle

// * 创建魔法圈

//==============================

Scene_Title.prototype.create_magic_circle = function() {

    if (Moghunter.title_particle_circle != "true") {return};

    this._sprite_mgc = new Sprite(ImageManager.loadTitle2("Magic_Circle")); //

    this._sprite_mgc.x = Moghunter.title_particle_circle_x;

    this._sprite_mgc.y = Moghunter.title_particle_circle_y;

    this._sprite_mgc.anchor.x = 0.5;

    this._sprite_mgc.anchor.y = 0.5;

    this._sprite_mgc.opacity = 0;

    this._sprite_mgc.blendMode = Moghunter.title_particle_circle_blend;

    this.addChild(this._sprite_mgc);

}

//==============================

// * Update Magic Circle

// * 魔法圈更新(转动、透明度改变)

//==============================

Scene_Title.prototype.update_magic_circle = function() {

    if (Moghunter.title_particle_circle != "true") {return};

    this._sprite_mgc.rotation += Moghunter.title_particle_circle_a;

    this._sprite_mgc.opacity += 3;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,386评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,142评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,704评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,702评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,716评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,573评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,314评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,230评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,680评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,873评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,991评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,706评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,329评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,910评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,038评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,158评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,941评论 2 355