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;

Javascript之pixi框架学习的更多相关文章

  1. JavaScript的运动框架学习总结

    一.目录 1. 入门案例——实现匀速运动 2. 入门案例——实现缓冲运动 3. 实现任意值的运动框架v.1 4. 改进任意值的运动框架v.2 5. 改进任意值的运动框架v.3 6. 实现链式运动框架 ...

  2. JavaScript客户端MVC 框架综述

    简介 15 年前,许多人都使用 Perl 和 ColdFusion 之类的工具构建网站.我们经常编写可以在页面顶部查询数据库的脚本,对数据应用必要的转换,以及在同一个脚本底部显示数据.这类架构适合于向 ...

  3. 2013 最新的 play web framework 版本 1.2.3 框架学习文档整理

    Play framework框架学习文档 Play framework框架学习文档 1 一.什么是Playframework 3 二.playframework框架的优点 4 三.Play Frame ...

  4. Yii框架学习 新手教程(一)

    本人小菜鸟一仅仅,为了自我学习和交流PHP(jquery,linux,lamp,shell,javascript,server)等一系列的知识,小菜鸟创建了一个群.希望光临本博客的人能够进来交流.寻求 ...

  5. JQuery EasyUI框架学习

    前言 新项目的开发前端技术打算採用EasyUI框架(基于EasyUI较为丰富的UI组件库),项目组长将前端EasyUI这块的任务分配给了我.在进行开发之前,须要我这菜鸟对EasyUI框架进行一些基础的 ...

  6. 《零基础学JavaScript(全彩版)》学习笔记

    <零基础学JavaScript(全彩版)>学习笔记 二〇一九年二月九日星期六0时9分 前期: 刚刚学完<零基础学HTML5+CSS3(全彩版)>,准备开始学习JavaScrip ...

  7. jQuery框架学习第十一天:实战jQuery表单验证及jQuery自动完成提示插件

    jQuery框架学习第一天:开始认识jQueryjQuery框架学习第二天:jQuery中万能的选择器jQuery框架学习第三天:如何管理jQuery包装集 jQuery框架学习第四天:使用jQuer ...

  8. karma + phantom + mocha + sion + chai + nightwatch + selenium2(webdriver) 测试框架学习

    第三方的教程传送门 https://segmentfault.com/a/1190000004558796 karma # github https://github.com/karma-runner ...

  9. spring mvc 及NUI前端框架学习笔记

    spring mvc 及NUI前端框架学习笔记 页面传值 一.同一页面 直接通过$J.getbyName("id").setValue(id); Set值即可 二.跳转页面(bus ...

随机推荐

  1. 201521123088《JAVA程序设计》第8周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 2. 书面作业 本次作业题集集合 1.List中指定元素的删除(题目4 ...

  2. 201521123048 《Java程序设计》第8周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 本次作业题集集合 1.List中指定元素的删除(题目4-1) 1.1 实验总结 for (in ...

  3. 201521123117 《Java程序设计》第5周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点 2. 书面作业 Q1代码阅读:Child压缩包内源代码 1.com.parent包中Child.java文件能否编译通过?哪句会 ...

  4. 201521123059 《Java程序设计》第二周学习总结

    1.本周总结 本周老师讲了和自己掌握了以下内容: (1).三元条件运算符 表达式1?表达式2:表达式3: (2). 字符串String类 String的不可变优点:编译器可以让字符串共享,效率高.但是 ...

  5. 201521123093 java 第十二周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...

  6. JAVA课程设计+五子棋(团队博客)

    JAVA课程设计 利用所学习的JAVA知识设计一个五子棋小游戏 1.团队名称.团队成员介绍(菜鸟三人组) 杨泽斌[组长]:201521123049 网络1512 叶文柠[组员]:20152112305 ...

  7. Hibernate逆向工程【PowerDesigner、idea环境下】

    为什么要使用逆向工程 由于我们每次编写Hibernate的时候都需要写实体,写映射文件.而且Hibernate的映射文件也容易出错.而逆向工程可以帮我们自动生成实体和映射文件,这样就非常方便了. 使用 ...

  8. linux(4) vi编辑/删除、复制、粘贴 /bash shell 环境变量设置/数据流重定向 | 的用法

    一.vi文字处理器1.vi与vimvi:文字处理器vim:程序开发工具2.vi介绍三种模式:一般模式(vi刚进入的,不可编辑),编辑模式(按i后,左下方是insert)和命令行模式(按esc退出,:w ...

  9. Activiti-06-.事件

    Events 事件 1, 事件用于对发生在流程生命周期的事情进行建模.事件总是被形象成一个圆圈.在BPMN 2.0 中,存在两种主要的事件类型:捕获事件和抛出事件. 捕获:流程执行到该事件时,会等待 ...

  10. Linux下识别分区文件系统类型

    Linux下挂载文件系统有时候需要填写文件系统.但有的设备拿到手还不知道文件系统,这种情况,可以用 parted命令 # parted /dev/vda GNU Parted 3.2 Using /d ...