Newer
Older
pixi.js / examples / example 14 - Masking / index double mask.html
<!DOCTYPE HTML>
<html>
<head>
    <title>pixi.js example 14 - Masking</title>
    <style>
        body {
            margin: 0;
            padding: 0;
            background-color: #000000;
        }
    </style>

    <script src="../../bin/pixi.dev.js"></script>
</head>
<body>
    <script>

    // create an new instance of a pixi stage
    var stage = new PIXI.Stage(0xFFFFFF, true);

    stage.interactive = true;

    var bg = PIXI.Sprite.fromImage("BGrotate.jpg");
    bg.anchor.x = 0.5;
    bg.anchor.y = 0.5;

    bg.position.x = 620/2;
    bg.position.y = 380/2;

    //stage.addChild(bg);


    var bgFront = PIXI.Sprite.fromImage("SceneRotate.jpg");
    bgFront.anchor.x = 0.5;
    bgFront.anchor.y = 0.5;

    //stage.addChild(bgFront);

    // create a renderer instance
    var renderer = PIXI.autoDetectRenderer(620, 380);

    renderer.view.style.position = "absolute"
    renderer.view.style.marginLeft = "-310px";
    renderer.view.style.marginTop = "-190px";
    renderer.view.style.top = "50%";
    renderer.view.style.left = "50%";
    renderer.view.style.display = "block";

    // add render view to DOM
    document.body.appendChild(renderer.view);

    // lets create moving shape

    var mask1 = new PIXI.Graphics();
    mask1.beginFill(0);
    mask1.drawRect(0, 0, 150, 100)

    bgFront.mask = mask1;

    var mask2 = new PIXI.Graphics();
    mask2.beginFill(0);
    mask2.drawRect(20, 50, 300, 100)

    var container = new PIXI.DisplayObjectContainer();
    stage.addChild(container);
    container.addChild(bg);
    container.addChild(bgFront)


    container.mask = mask2;
    var count = 0;

    stage.click = stage.tap = function()
    {
        if(!container.filter)
        {
            container.mask = thing;
            PIXI.runList(stage);
        }
        else
        {
            container.mask = null;
        }
    }

    /*
     * Add a pixi Logo!
     */
    var logo = PIXI.Sprite.fromImage("../../logo_small.png")
    stage.addChild(logo);

    logo.anchor.x = 1;
    logo.position.x = 620
    logo.scale.x = logo.scale.y = 0.5;
    logo.position.y = 320
    logo.interactive = true;
    logo.buttonMode = true;

    logo.click = logo.tap = function()
    {
        window.open("https://github.com/GoodBoyDigital/pixi.js", "_blank")
    }

    var help = new PIXI.Text("Click to turn masking on / off.", {font:"bold 12pt Arial", fill:"white"});
    help.position.y = 350;
    help.position.x = 10;
    stage.addChild(help);

    requestAnimFrame(animate);

    function animate() {

        bg.rotation += 0.01;
        bgFront.rotation -= 0.01;

        count += 0.1;



        renderer.render(stage);
        requestAnimFrame( animate );
    }

    </script>

    </body>
</html>