Javascript之pixi框架学习
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
接口,还有CanvasRenderer
和WebGLRenderer
接口,
autoDetectRenderer
可以根据客户端对 WebGL 的支持自动创建WebGL
或Canvas 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框架学习的更多相关文章
- JavaScript的运动框架学习总结
一.目录 1. 入门案例——实现匀速运动 2. 入门案例——实现缓冲运动 3. 实现任意值的运动框架v.1 4. 改进任意值的运动框架v.2 5. 改进任意值的运动框架v.3 6. 实现链式运动框架 ...
- JavaScript客户端MVC 框架综述
简介 15 年前,许多人都使用 Perl 和 ColdFusion 之类的工具构建网站.我们经常编写可以在页面顶部查询数据库的脚本,对数据应用必要的转换,以及在同一个脚本底部显示数据.这类架构适合于向 ...
- 2013 最新的 play web framework 版本 1.2.3 框架学习文档整理
Play framework框架学习文档 Play framework框架学习文档 1 一.什么是Playframework 3 二.playframework框架的优点 4 三.Play Frame ...
- Yii框架学习 新手教程(一)
本人小菜鸟一仅仅,为了自我学习和交流PHP(jquery,linux,lamp,shell,javascript,server)等一系列的知识,小菜鸟创建了一个群.希望光临本博客的人能够进来交流.寻求 ...
- JQuery EasyUI框架学习
前言 新项目的开发前端技术打算採用EasyUI框架(基于EasyUI较为丰富的UI组件库),项目组长将前端EasyUI这块的任务分配给了我.在进行开发之前,须要我这菜鸟对EasyUI框架进行一些基础的 ...
- 《零基础学JavaScript(全彩版)》学习笔记
<零基础学JavaScript(全彩版)>学习笔记 二〇一九年二月九日星期六0时9分 前期: 刚刚学完<零基础学HTML5+CSS3(全彩版)>,准备开始学习JavaScrip ...
- jQuery框架学习第十一天:实战jQuery表单验证及jQuery自动完成提示插件
jQuery框架学习第一天:开始认识jQueryjQuery框架学习第二天:jQuery中万能的选择器jQuery框架学习第三天:如何管理jQuery包装集 jQuery框架学习第四天:使用jQuer ...
- karma + phantom + mocha + sion + chai + nightwatch + selenium2(webdriver) 测试框架学习
第三方的教程传送门 https://segmentfault.com/a/1190000004558796 karma # github https://github.com/karma-runner ...
- spring mvc 及NUI前端框架学习笔记
spring mvc 及NUI前端框架学习笔记 页面传值 一.同一页面 直接通过$J.getbyName("id").setValue(id); Set值即可 二.跳转页面(bus ...
随机推荐
- 通过修改my.ini配置文件来解决MySQL 5.6 内存占用过高的问题
打开后台进程发现mysql占用的内存达到400+M. 修改一下my.ini这个配置文件的配置选项是可以限制MySQL5.6内存占用过高这一问题的,具体修改选项如下: performance_schem ...
- 201521123042 《java程序设计》 第八周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. ①泛型定义:泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展, ...
- 201521123038 《Java程序设计》 第五周学习总结
201521123038 <Java程序设计> 第五周学习总结 1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.ja ...
- 201521123080《Java程序设计》第4周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. (1)继承:子类继承父类,子类可以复用父类的方法和函数. (2)多态:方法的重写和重载是Ja ...
- 201521123102 《Java程序设计》第2周学习总结
#1. 本周学习总结(1)学习使用码云存储代码(2)掌握了常见数据类型的使用.转换(3)回顾了前面学过的基本语法(4)复习一二三章内容 #2. 书面作业**Q1.使用Eclipse关联jdk源代码,并 ...
- 201521123071《Java程序设计》第1周学习总结
1. 本章学习总结 通过本周的学习,对java的一些语法以及java的发展史有了一定的基础认识,也了解了JDK的安装,以及环境变量定义和配置等知识.还有对码云,Markdown等的使用,大大方便了我们 ...
- 201521123032 《Java程序设计》第9周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己 ...
- Thrift教程初级篇——thrift安装环境变量配置第一个实例
前言: 因为项目需要跨语言,c++客户端,web服务端,远程调用等需求,所以用到了RPC框架Thrift,刚开始有点虚,第一次接触RPC框架,后来没想到Thrift开发方便上手快,而且性能和稳定性也不 ...
- 教你在Java接口中定义方法
基本上所有的Java教程都会告诉我们Java接口的方法都是public.abstract类型的,没有方法体的. 但是在JDK8里面,你是可以突破这个界限的哦. 假设我们现在有一个接口:TimeClie ...
- XML(二)之DTD——XML文件约束
前面介绍了XML的作用和基本的格式,今天我给大家分享的是关于XML的约束.废话不多说,我们直接来正题! 一.DTD简介 1.1.DTD概述 DTD(Document Type Definition,文 ...