Flashgamedev.ru | Разработка и Монетизация Флэш игр
http://flashgamedev.ru/

Phaser. Text Glow
http://flashgamedev.ru/viewtopic.php?f=20&t=18388
Страница 1 из 1

Автор:  eXAAAXe [ Вс апр 15, 2018 7:39 pm ]
Заголовок сообщения:  Phaser. Text Glow

Во Флеш можно было настроить свечение тексту, как этот эффект сделать в Phaser для текста?

Автор:  KidWithGun [ Пн апр 16, 2018 2:14 am ]
Заголовок сообщения:  Re: Phaser. Text Glow

eXAAAXe писал(а):
Во Флеш можно было настроить свечение тексту, как этот эффект сделать в Phaser для текста?


Нужен шейдер (фильтр)
Можно приготовить так:
(Шейдер взят тут https://gist.github.com/MatthewBarker/0 ... 577c6d0188)
Код:
  var style = { font: "100px Arial", fill: "#ff0044", align: "center" };
      var text = this.game.add.text(this.game.world.centerX, this.game.world.centerY, "Это работает!", style);
      text.anchor.set(0.5);
     
      var fragmentSrc = [
          'precision lowp float;',
          'varying vec2 vTextureCoord;',
          'varying vec4 vColor;',
          'uniform sampler2D uSampler;',

          'void main() {',
              'vec4 sum = vec4(0);',
              'vec2 texcoord = vTextureCoord;',
              'for(int xx = -4; xx <= 4; xx++) {',
                  'for(int yy = -3; yy <= 3; yy++) {',
                      'float dist = sqrt(float(xx*xx) + float(yy*yy));',
                      'float factor = 0.0;',
                      'if (dist == 0.0) {',
                          'factor = 2.0;',
                      '} else {',
                          'factor = 2.0/abs(float(dist));',
                      '}',
                      'sum += texture2D(uSampler, texcoord + vec2(xx, yy) * 0.002) * factor;',
                  '}',
              '}',
              'gl_FragColor = sum * 0.025 + texture2D(uSampler, texcoord);',
          '}'
      ];

      var filter = new Phaser.Filter(this.game, null, fragmentSrc);

      text.filters = [ filter ];


Можно код оформить более грамотно, но смотри сам, даю ссылку.
Больше примеров и вариантов подключения шейдеров тут: https://phaser.io/examples/v2/category/filters

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/