当前位置:   article > 正文

Javascript之pixi.js框架学习

pixi renderer.render(stage, rendertexture)

pixi.js

创建渲染器(renderer)

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

  1. //v4.4.2之前的旧写法
  2. //创建
  3. var renderer = PIXI.autoDetectRenderer(w, h, {
  4. backgroundColor: 0x1099bb,
  5. transparent: true //背景是否设为透明
  6. });
  7. document.body.appendChild(renderer.view);
  8. //舞台添加显示对象sprite及每次渲染的监听函数
  9. var stage = new PIXI.Container();
  10. stage.addChild(sprite);
  11. animate();
  12. function animate() {
  13. renderer.render(stage);
  14. requestAnimationFrame(animate);
  15. }
  16. //v4.4.2之后的新写法
  17. //创建
  18. var app = new PIXI.Application(w, h, {
  19. backgroundColor: 0x1099bb,
  20. transparent: false //背景是否设为透明
  21. });
  22. //添加显示对象sprite及每次渲染的监听函数
  23. app.stage.addChild(sprite);
  24. app.ticker.add(function(delta) {});
  25. document.body.appendChild(app.view);

除了autoDetectRenderer接口,还有 CanvasRendererWebGLRenderer 接口,
autoDetectRenderer 可以根据客户端对 WebGL 的支持自动创建 WebGLCanvas renderer

创建舞台(stage)

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

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

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

动画中最重要的元素是图片(材质),这一类特殊的图片对象在pixi.js中称为精灵(sprite),
通过控制sprite的大小,位置及一些其他的属性,可以达到动画的效果。

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

有三种方式创建:

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

    材质集是一个json文件,定义了某个材质图片里面图片的位置和大小等等,这样做的好处是不用
    每次创建sprite都要定义位置和大小,另外一方面修改了材质图片的时候不用修改代码.

根据材质集加载图片

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

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

treasureHunter.json 是材质集的配置文件,setup 是在完成图片加载后调用的回调函数。
PIXI.loader 在加载完成后可以通过 PIXI.loader.resources 来获取加载的图片。

回调函数

在完成图片加载后,PIXI.loader 会自动调用 setup 函数来进行下一步的处理。我们先定义
一个测试方法,看看是否跟预期一样。

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

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

  1. var gameScene;
  2. function setup() {
  3. gameScene = new PIXI.Container();
  4. }

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

  1. var gameScene;
  2. function setup() {
  3. gameScene = new PIXI.Container();
  4. }

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

  • 游戏开始界面场景
  • 游戏结束界面场景(一个显示一个消失)
利用pixi绘制图形
绘制线条图形
  • 首先需要创建图形类var graphics = new PIXI.Graphics();
  • graphics.beginFill(0xFF3300); //图形填充颜色
  • graphics.lineStyle(4, 0xffd900,1); //图形边框宽度,颜色,透明度
  • 按线条点位坐标绘图
  1. graphics.moveTo(50,50); //图形绘制起点
  2. graphics.lineTo(250, 50); //连线到下一个点
  3. graphics.lineTo(100, 100);
  4. graphics.lineTo(50, 50);
  5. 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类
  1. var style = new PIXI.TextStyle({
  2. fontFamily: 'Arial', //字体
  3. fontSize: 36, //字体大小
  4. fontStyle: 'italic', //字体类型(斜体)
  5. fontWeight: 'bold', //加粗
  6. fill: ['#ffffff', '#00ff99'], //由上到下的过渡颜色
  7. stroke: '#4a1850', //文字边框颜色
  8. strokeThickness: 5, //文字边框粗细
  9. dropShadow: true, //阴影
  10. dropShadowColor: '#000000', //阴影颜色
  11. dropShadowBlur: 4, //阴影模糊程度
  12. dropShadowAngle: Math.PI / 6, //阴影角度
  13. dropShadowDistance: 6, //阴影距离
  14. wordWrap: true, //自动换行
  15. wordWrapWidth: 440
  16. });
  17. var richText = new PIXI.Text('Rich text with a lot of options', style);
  18. richText.x = 30;
  19. richText.y = 180;

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/118588?site
推荐阅读
相关标签
  

闽ICP备14008679号