1. 介绍、启动项目、创建 Pixi 应用和舞台

812 阅读2分钟

一、介绍

Pixi 是一个超快的 2D 渲染引擎,它可以用来创建动画或管理交互式图像,从而制作一个游戏或应用。

二、启动项目

1. 下载

这个教程使用的版本是 v4.5.5 版本,你可以在 Pixi v4.5.5 的发布页面 下载它,你也可以在 Pixi 的主要发布页面 下载其他版本。

2. 创建项目并使用 http-server 启动

创建项目

  1. 项目目录

    images/cat.png
    index.html
    pixi.js
    

    下载图片: cat.png

  2. 初始代码

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>PIXI学习</title>
        <script src="./pixi.js"></script>
    </head>
    
    <body>
        <script type="text/javascript">
            let type = "WebGL"
            if (!PIXI.utils.isWebGLSupported()) {
                type = "canvas"
            }
    
            PIXI.utils.sayHello(type)
        </script>
    </body>
    
    </html>
    

    如果 Pixi 连接成功,控制台将会出现如下内容:

    image.png

安装 http-server 并启动

# 安装
npm i -g http-server

# 启动
http-server . -c-1

三、创建 Pixi 应用和舞台

// Create a Pixi Application
let app = new PIXI.Application({width: 256, height: 256})

// Add the canvas that Pixi automatically created for you to the HTML document
document.body.appendChild(app.view)

以上代码,将在文档中创建一个 256px * 256px 的 黑色 canvas 标签。其中 new PIXI.Application() 就是创建一个 PIXI 应用,{width: 256, height: 256} 就是舞台对象,这个舞台对象作为参数传入 PIXI 应用中。

拿演唱会打比方,PIXI应用 就相当于 演唱会的场地,舞台对象 就相当于场地之上的舞台。将来我们还会创建一些精灵放在舞台上,这些 精灵 就相当于舞台上的歌手或演员。

1. 关于 PIXI.Application

  • 它会自动算出应该使用 Canvas 还是 WebGL 去渲染图像,它取决于你的浏览器支持哪个;
  • 它接收一个配置(options)对象作为参数:
    let app = new PIXI.Application({
        width: 256,         // default: 800,单位是 px
        height: 256,        // default: 600,单位是 px
        antialias: true,    // default: false,使得字体的边界和几何图形更加圆滑
        transparent: false, // default: false,设置 Canvas 透明
        resolution: 1,       // default: 1,设置分辨率和像素密度,一般设置 resolution 为 1,就可以应付大多数工程了
        forceCanvas: true,   // Pixi 的画布对象默认使用 WebGL,forceCanvas 设为 true 则强制使用 Canvas
      }
    );
    
  • 其他设置可以查看文档:PIXI.Application

2. 改变 Canvas 的背景

app.renderer.backgroundColor = 0x061639    // 十六进制颜色

3. 获取 Canvas 的宽高

app.renderer.view.width
app.renderer.view.height

4. 改变 Canvas 的宽高

app.renderer.autoResize = true    // 为了确认宽高格式正确,将 autoResize 设为 true
app.renderer.resize(512, 512)

5. 让 Canvas 占据整个窗口

* { margin: 0; padding: 0 }
app.renderer.view.style.position = "absolute"
app.renderer.view.style.display = "block"    // 这一句也可以不写,因为将元素 position 设置为 absolute 之后,元素的 display 就自动变成了 block
app.renderer.autoResize = true
app.renderer.resize(window.innerWidth, window.innerHeight)