javascript - 如何让 pixi 扩展 Canvas 并放大?

标签 javascript html canvas pixi.js

我正在制作一款使用 pixi 的游戏它在 640x480 像素的 Canvas 上渲染。正如您可以想象的那样,在 PC 上查看时该值非常小。我想实现这个:

  1. 我想增加 Canvas 的大小,使其填满整个屏幕
  2. 我想放大内容,以便在不改变宽高比的情况下尽可能填满内容
  3. 如果上一步有剩余空间,我希望将 Canvas 居中

当我在 pixi 中搜索如何执行此操作时,我可以单独找到其中每一个。但我想在 stackoverflow 上获得有关如何在一个地方完成这一切的信息,因为您通常希望一起完成所有这些事情。

最佳答案

我修改了创建者制作的这个示例中的源代码: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 为中心的舞台来实现此目的.

关于javascript - 如何让 pixi 扩展 Canvas 并放大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23666420/

相关文章:

jquery - html jquery.load,动态文件名

javascript - 有什么方法可以在 javascript 中将径向渐变变成椭圆形?

javascript - 在 HTML5 Canvas 中,图像位置在不同设备上发生变化

javascript - 使用 fabric js 在对象内部自由绘图

javascript - 背景图像属性中的 GIF 图片需要停止动画

javascript - 如何在 Laravel 5.2 中的数据表服务器端处理中访问 json 对象/数据?

javascript - 如何覆盖 javascript 表单小部件的属性

javascript - 如何使用jquery删除php while循环中的每一行?

javascript - 使用 jStorage 设置和获取输入值

javascript - 创建内部元素有限的列表