博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Javascript之pixi.js框架学习
阅读量:6208 次
发布时间:2019-06-21

本文共 3419 字,大约阅读时间需要 11 分钟。

pixi.js

创建渲染器(renderer)

创建一个可以播放动画的区域,相当于(canvas).

//v4.4.2之前的旧写法//创建  var renderer = PIXI.autoDetectRenderer(w, h, {      backgroundColor: 0x1099bb,      transparent: true //背景是否设为透明   });  document.body.appendChild(renderer.view);  //舞台添加显示对象sprite及每次渲染的监听函数  var stage = new PIXI.Container();  stage.addChild(sprite);  animate();  function animate() {      renderer.render(stage);      requestAnimationFrame(animate);  }  //v4.4.2之后的新写法//创建  var app = new PIXI.Application(w, h, {      backgroundColor: 0x1099bb,       transparent: false //背景是否设为透明   });//添加显示对象sprite及每次渲染的监听函数  app.stage.addChild(sprite);  app.ticker.add(function(delta) {});  document.body.appendChild(app.view);

除了autoDetectRenderer接口,还有 CanvasRendererWebGLRenderer 接口,

autoDetectRenderer 可以根据客户端对 WebGL 的支持自动创建 WebGLCanvas renderer

创建舞台(stage)

舞台相当于一个容器(Container),添加元素后由渲染器(renderer)渲染舞台。相当于一个顶级的容器。

pixi.js 中有个 Container() 类,这个类就是一个容器。

var stage = new PIXI.Container();添加舞台之后可以由渲染器(renderer)渲染。renderer.render(stage);// 舞台(stage)搭建完成后渲染出来。。      ***最后

创建材质集

动画中最重要的元素是图片(材质),这一类特殊的图片对象在pixi.js中称为精灵(sprite),

通过控制sprite的大小,位置及一些其他的属性,可以达到动画的效果。

pixi中有一个sprite类,可以根据外部的图片(材质)来创建一个可以在pixi中使用的sprite对象。

有三种方式创建:

  • 从某个单独的图片创建
  • 从整个材质图片创建,根据材质上不同的位置和大小截取某部分来创建sprite
  • 从材质集中创建

    材质集是一个json文件,定义了某个材质图片里面图片的位置和大小等等,这样做的好处是不用

    每次创建sprite都要定义位置和大小,另外一方面修改了材质图片的时候不用修改代码.

根据材质集加载图片

pixi 中有一个 loader 类来管理图片的加载,并且在加载完成后调用回调函数处理。

PIXI.loader    .add("images/treasureHunter.json")    .load(setup);

treasureHunter.json 是材质集的配置文件,setup 是在完成图片加载后调用的回调函数。

PIXI.loader 在加载完成后可以通过 PIXI.loader.resources 来获取加载的图片。

回调函数

在完成图片加载后,PIXI.loader 会自动调用 setup 函数来进行下一步的处理。我们先定义

一个测试方法,看看是否跟预期一样。

function setup() {    console.log("加载完成.");}// 测试可以的话就可以,删除setup里面的东西,然后完善舞台。

创建场景(gameScene)

游戏一般要创建两个场景,一个是用来显示正常游戏画面(gameScene),一个是用来显示游戏结果(gameOverScene)。

var gameScene;function setup() {    gameScene = new PIXI.Container();}

在容器中要添加所有的材质并创建对应的sprite,如何添加?通过PIXI.loader.resources 可以访问加载的素材。

var gameScene;function setup() {    gameScene = new PIXI.Container();}

注意:pixi需要在一个服务器上运行,推荐调试的时候使用 http-server 本地服务器,

  • 游戏开始界面场景
  • 游戏结束界面场景(一个显示一个消失)

利用pixi绘制图形

绘制线条图形
  • 首先需要创建图形类var graphics = new PIXI.Graphics();
  • graphics.beginFill(0xFF3300); //图形填充颜色
  • graphics.lineStyle(4, 0xffd900,1); //图形边框宽度,颜色,透明度
  • 按线条点位坐标绘图
graphics.moveTo(50,50);    //图形绘制起点graphics.lineTo(250, 50);    //连线到下一个点graphics.lineTo(100, 100);graphics.lineTo(50, 50);graphics.endFill();   // 图形结束标志
绘制方块及圆形
  • 绘制方块
    graphics.drawRect(50, 250, 120, 120);
    //参数分别为x点,y点坐标。方块长、方块宽
  • 绘制圆角方块
    graphics.drawRoundedRect(150, 450, 300, 100, 15);
    // 前四个参数与绘制方块相同,最后一个圆角半径
  • 绘制圆形
    graphics.drawCircle(470, 90,60);
    //参数为x点坐标、y点坐标、圆形半径 60

pixi中的文字应用(初)

  • 首先需要创建一个文字类 var basicText = new PIXI.Text('Basic text in pixi');
  • 随后可以设值x,y坐标 basicText.x = 30;
  • 复杂的带style类
var style = new PIXI.TextStyle({    fontFamily: 'Arial',  //字体    fontSize: 36,         //字体大小    fontStyle: 'italic',  //字体类型(斜体)    fontWeight: 'bold',   //加粗    fill: ['#ffffff', '#00ff99'], //由上到下的过渡颜色    stroke: '#4a1850',    //文字边框颜色    strokeThickness: 5,   //文字边框粗细    dropShadow: true,     //阴影    dropShadowColor: '#000000', //阴影颜色    dropShadowBlur: 4,          //阴影模糊程度    dropShadowAngle: Math.PI / 6, //阴影角度    dropShadowDistance: 6,  //阴影距离    wordWrap: true,        //自动换行    wordWrapWidth: 440      });var richText = new PIXI.Text('Rich text with a lot of options', style);richText.x = 30;richText.y = 180;

转载于:https://www.cnblogs.com/Pudon/p/hello_pixi.html

你可能感兴趣的文章
Docker源码分析(三):Docker Daemon启动
查看>>
Converting circular structure to JSON
查看>>
dhcp协议的工作流程
查看>>
POSIX中无名信号量
查看>>
date加一天的几种方式
查看>>
我的友情链接
查看>>
jmeter简单压力post接口问题
查看>>
JAVA如何使用泛型编程
查看>>
asp.net中几种下载方式
查看>>
dubbo架构
查看>>
Oracle客户端无法连接服务端解决方法及步骤
查看>>
nginx做代理IP端口转发
查看>>
I/O输入输出
查看>>
find命令与文件后缀名的区别
查看>>
Easyui-Datagrid—表头灵活拖动
查看>>
NFS共享设置
查看>>
Android 5.0新功能详解
查看>>
邓巴数定律
查看>>
traceroute和tracert的区别
查看>>
安装Centos6.9出现故障
查看>>