【问题标题】:How to create a shadow pixi.js?如何创建影子 pixi.js?
【发布时间】:2015-09-20 01:22:53
【问题描述】:

为什么没有影子?您需要做什么才能使过滤器正常工作?如果可能的话,然后在代码中向我展示如何创建阴影。

var renderer = PIXI.autoDetectRenderer(500, 200, {
  transparent: true
});

document.getElementsByTagName('body')[0].appendChild(renderer.view);

var stage = new PIXI.Container();

function update(){
  renderer.render(stage);
  window.requestAnimationFrame(update);
}

update();

var graphics = new PIXI.Graphics();
graphics.beginFill(0x848484);
graphics.drawPolygon([0,0,100,0,100,100,0,100,0,0]);
graphics.endFill();

var dropShadowFilter = new PIXI.filters.DropShadowFilter();
dropShadowFilter.alpha = 1;
dropShadowFilter.blur = 2;
dropShadowFilter.distance = 20;

graphics.filters = [dropShadowFilter];

stage.addChild(graphics);
<script src="https://cdnjs.cloudflare.com/ajax/libs/pixi.js/3.0.7/pixi.js"></script>

【问题讨论】:

    标签: pixi.js


    【解决方案1】:

    不要让渲染器透明。我猜,如果渲染器是透明的,那么它的纹理的 alpha = 0 并且阴影被绘制在上面。此外,仅适用于 webGL。

    var renderer = new PIXI.WebGLRenderer(500, 200);
    renderer.backgroundColor = 0xffffff;
    
    document.getElementsByTagName('body')[0].appendChild(renderer.view);
    
    var stage = new PIXI.Container();
    
    function update(){
      renderer.render(stage);
      window.requestAnimationFrame(update);
    }
    
    update();
    
    var graphics = new PIXI.Graphics();
    graphics.beginFill(0x8484cc);
    graphics.drawPolygon([20,20,120,20,120,120,20,120,20,20]);
    graphics.endFill();
    
    var dropShadowFilter = new PIXI.filters.DropShadowFilter();
    dropShadowFilter.color = 0x000020;
    dropShadowFilter.alpha = 0.2;
    dropShadowFilter.blur = 6;
    dropShadowFilter.distance = 20;
    
    graphics.filters = [dropShadowFilter];
    
    stage.addChild(graphics);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/pixi.js/3.0.7/pixi.js"></script>

    【讨论】:

    • 不适用于 pixi.js v4:Uncaught TypeError: PIXI.filters.DropShadowFilter is not a constructor(...)
    • @AlexanderFarber 如果你提到这个:github.com/pixijs/pixi.js/issues/2075。它说它已被转移到“pixi-filters”,一个单独的库。虽然我没有在页面上看到它。
    • 对于遇到相同问题的任何人,图书馆已移至此处github.com/pixijs/pixi-filters
    猜你喜欢
    • 2018-01-23
    • 2014-11-09
    • 2020-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多