Ver código fonte

feat #1836

tags/v0.10.4^2
Shaun 2 anos atrás
pai
commit
9a2fd779f5
2 arquivos alterados com 25 adições e 9 exclusões
  1. +2
    -1
      src/client/js/rendering/particles.js
  2. +23
    -8
      src/client/js/rendering/renderer.js

+ 2
- 1
src/client/js/rendering/particles.js Ver arquivo

@@ -28,9 +28,10 @@ define([


let options = $.extend(true, {}, particleDefaults, config); let options = $.extend(true, {}, particleDefaults, config);


let emitter = new PIXI.particles.Emitter(this.r.layers.particles, ['images/particles.png'], options);
let emitter = new PIXI.particles.Emitter(this.stage, ['images/particles.png'], options);
emitter.obj = obj; emitter.obj = obj;
emitter.emit = true; emitter.emit = true;
emitter.particleEngine = this;


this.emitters.push(emitter); this.emitters.push(emitter);




+ 23
- 8
src/client/js/rendering/renderer.js Ver arquivo

@@ -21,11 +21,15 @@ define([
globals, globals,
renderLoginBackground renderLoginBackground
) { ) {
let mRandom = Math.random.bind(Math);
const mRandom = Math.random.bind(Math);

const particleLayers = ['particlesUnder', 'particles'];
const particleEngines = {};


return { return {
stage: null, stage: null,
layers: { layers: {
particlesUnder: null,
objects: null, objects: null,
mobs: null, mobs: null,
characters: null, characters: null,
@@ -115,10 +119,15 @@ define([
this.textures[t].scaleMode = PIXI.SCALE_MODES.NEAREST; this.textures[t].scaleMode = PIXI.SCALE_MODES.NEAREST;
}); });


particles.init({
r: this,
renderer: this.renderer,
stage: this.layers.particles
particleLayers.forEach(p => {
const engine = $.extend({}, particles);
engine.init({
r: this,
renderer: this.renderer,
stage: this.layers[p]
});

particleEngines[p] = engine;
}); });


this.buildSpritesTexture(); this.buildSpritesTexture();
@@ -769,11 +778,16 @@ define([
}, },


buildEmitter: function (config) { buildEmitter: function (config) {
return particles.buildEmitter(config);
const { layerName = 'particles' } = config;
const particleEngine = particleEngines[layerName];

return particleEngine.buildEmitter(config);
}, },


destroyEmitter: function (emitter) { destroyEmitter: function (emitter) {
particles.destroyEmitter(emitter);
const particleEngine = emitter.particleEngine;

particleEngine.destroyEmitter(emitter);
}, },


setSprite: function (obj) { setSprite: function (obj) {
@@ -887,7 +901,8 @@ define([
return; return;


effects.render(); effects.render();
particles.update();

particleLayers.forEach(p => particleEngines[p].update());


this.renderer.render(this.stage); this.renderer.render(this.stage);
} }


Carregando…
Cancelar
Salvar