如何让pixi扩展我的画布并放大?

时间:2014-05-14 22:45:27

标签: javascript html5 canvas pixi.js

我正在制作一款使用pixi的游戏,并在画布上呈现640x480像素。可以想象,在PC上查看时,这个数字非常小。我想完成这个:

  1. 我想增加画布的大小,以便填满整个画面
  2. 我想放大内容,以便在不改变其宽高比的情况下尽可能多地填充
  3. 如果上一步剩下空格,我想把画布居中
  4. 当我在谷歌搜索如何在pixi中执行此操作时,我可以单独找到这些内容。但我想在一个地方和stackoverflow上获得有关如何完成所有这些操作的信息,因为您通常希望一起完成所有这些操作。

1 个答案:

答案 0 :(得分:0)

我修改了创作者在此示例中创建的源代码:http://www.goodboydigital.com/pixi-js-tutorial-getting-started/ (source download)

这是我想出的:

<!DOCTYPE HTML>
<html>
<head>
    <title>pixi.js example 1</title>
    <style>
        body {
            margin: 0;
            padding: 0;
            background-color: #000000;
        }
    </style>
    <script src="pixi.js"></script>

</head>
<body>
    <script>

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

    // create a renderer instance
    var renderer = PIXI.autoDetectRenderer(400, 300);
    renderer.resize(800, 600);

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

    requestAnimFrame( animate );

    // create a texture from an image path
    var texture = PIXI.Texture.fromImage("bunny.png");
    // create a new Sprite using the texture
    var bunny = new PIXI.Sprite(texture);

    // center the sprites anchor point
    bunny.anchor.x = 0.5;
    bunny.anchor.y = 0.5;

    // move the sprite t the center of the screen
    bunny.position.x = 200;
    bunny.position.y = 150;

    var container = new PIXI.DisplayObjectContainer();
    container.scale.x = 2;
    container.scale.y = 2;
    container.addChild(bunny);
    stage.addChild(container);

    function animate() {

        requestAnimFrame( animate );

        // just for fun, lets rotate mr rabbit a little
        bunny.rotation += 0.1;

        // render the stage
        renderer.render(stage);
    }

    </script>

    </body>
</html>

现在我做的一件事就是把它放在中心位置。我看到了两种可能的方法。我可以使用CSS来集中canvas(我可能会使用的),或者我可以通过在中心container的舞台上添加另一个外部显示对象来在代码中执行此操作。