学JS的心路历程 - PixiJS -基础(一)
建立canvas
今天开始我们一步步来看怎么使用PixiJS吧!
在开始之前,要先提醒各位需要先运行webserver,否则将会遇到一些奇怪的问题喔!
最基本的canvas画布是肯定需要的,Pixi提供了PIXI.Application建构式方便我们建立。
let app = new PIXI.Application(800,600,{backgroundColor:0x1099bb});
document.body.appendChild(app.view);
PIXI.Application在被建立同时也会自动建立renderer,ticker和root container。
renderer -优先使用WebGL渲染如果不允许则用Canvas渲染
ticker -渲染的更新频率(vmwork)
stage - PIXI容器物件,是所有可见物件的根容器
PIXI.Application会取决于浏览器支持程度选择使用WebGL或Canvas渲染图片。
如果想要确认是用WebGL还是Canvas模式的话,最快速的方式就是打开console观看。
当然也能用程序来判断:
console.log(PIXI.utils.isWebGLSupported());//回传目前页面是否支持WebGL;
console.log(app.renderer.type);//回传目前PixiJS app的renderer模式:
// PIXI.RENDERER_TYPE,值为0、1、2
console.log(PIXI.RENDERER_TYPE);// {UNKNOWN: 0,WEBGL: 1,CANVAS: 2}
而PIXI.Application物件可以传入options物件的参数来设定宽、高、背景颜色等等。
想全部了解可以看官方文件
背景颜色要注意到只能使用「十六进制颜色」,是0x000000 ~ 0xffffff数字。
在创立完后透过document.body.appendChild添加到HTML body后就可以看到说,
一张canvas就这样被轻松建立出来了(我觉得这是在废话…)。
接着,我们来尝试添加图片到canvas中。
添加图片
要能让图片显示在Pixi的canvas中必须把图片添加进PIXI的stage物件中。
可以这样使用:
app.stage
在把图片放进stage前,需要先把图片转成Sprite的特殊图片物件。
我们能利用程序控制Sprite的大小及位置,可以透过下列三种方式建立Sprite:
单一图片
Sprite图片
这种类型的图片称作Sprite图片
图片来源:How to build a simple sprite animation in JavaScript
texture atlas -经由JSON定义大小和位置的Sprite图片
这边我们先用单一图片来简单讲解
let app = new PIXI.Application(800,600,{backgroundColor:0x1099bb});
let imageURL =“./image/bunny.png”;
let bunny = PIXI.Sprite.fromImage(imageURL);
document.body.appendChild(app.view);
app.stage.addChild(bunny);
我们先用PIXI.Sprite.fromImage把图片转成Sprite物件后,再经由app.stage.addChild将图片显示在canvas上。
原始图有点小,就撷取一小部分显示了。
这边要注意到的是,如果图片来源使用外部来源像是imgur或其他网址的话,会遇到CORS跨域问题。
由于本篇是在讲解如何使用PixiJS,在之后的示例都会采引入本机图片的方式,对CORS有兴趣的各位可以看这篇文章的讲解喔!
前端菜焦阿日记|D10| Web Server -跨域请求(leafor)
那么今天就先到这边,一样如果有错误及来源未附上欢迎留言指正,我们明天见!
学JS的心路历程 - PixiJS -基础(一)的更多相关文章
- 学JS的心路历程 - PixiJS -基础(三)
今天我们来试着移动图片吧! 首先,一样先把图片放到PIXI的stage中: let app = new PIXI.Application({ width: 800, height: 600, back ...
- 学JS的心路历程Day28 - PixiJS -基础(二)
材质暂存(texture cache) 昨天有说到,图片要放入stage前,需要先把图片转成Sprite的特殊图片物件. 但是我们也可以先将图片放进材质暂存(texture cache). 什么是「材 ...
- 学JS的心路历程Day26 - PixiJS -入坑
后来知道也可以透过canvas让网页动起来! 而PixiJS是使用WebGL在canvas上绘制内容与制作动态 且同时有下列特色: 支持多点触控 掩码与混合模式 可外加WebGL滤镜 多装置支持 等等 ...
- 学JS的心路历程 -函式(三)this
this是什么,取决于被呼叫的呼叫地点. 昨天有提到说,呼叫函式时候会传递隐含参数:arguments和this并讲解了arguments,今天我们就来探讨this吧! 什么是this 我们都会呼叫函 ...
- 学JS的心路历程 - JS应用
各家电商网站都推出了各种活动和现今优惠券,当时在逛PTT时看到了有篇文章,提供代码教大家用JS的方式抢票,看了一下后发现好像很多人好奇这是怎么做的,于是就想说想一篇文章来讲解一下. 我们先来看一下折价 ...
- 学JS的心路历程 - JS的Class
没错,你没有看错,虽然前面说JS是原型继承,但在ES6以后新增了class关键字!!! 不过底层实作仍然是以原型继承方式进行,所以基本上算是一个语法糖. 今天我们就来看一下如何使用吧! class 首 ...
- 学JS的心路历程-物件与原型(三)
昨天有说明到函式与建构式的原型,及指定建构式函式原型为另一个建构式函式,但其实这会造成复写constructor的问题. 复写constructor的问题(vmwork) 我们昨天有提到「建构式函式可 ...
- 学JS的心路历程 -物件与原型(二)
昨天有提到说Object.setPrototypeOf可以指定一个物件为另一个物件的原型,但有想过到底这个原型,也就是[[Prototype]]最终会到何处吗? 答案是Object.prototype ...
- 学JS的心路历程-物件与原型(一)
前两天说明面向对象的三大特性及JS不符合面向对象,只能称作支持面向对象而已,今天我们来看看JS的原型继承. 首先我们先来看,什么是原型(vmwork): 两个物件之间的原型关系(prototype r ...
随机推荐
- Jquery,全选,反选,
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- android 开发 实现RecyclerView的列表单选功能
实现思维: 1.首先在一行的xml布局中添加一个选中效果的icon图片,未选中的情况下INVISIBLE或者GONE 都可以,推荐使用INVISIBLE它会占用布局位置但是不显示,这样可以避免布局中其 ...
- python tkinter chk
视频过程中的练习, 可以在python2.7下运行. 001: hello,world: 1 2 3 4 5 6 from Tkinter import Label, Tk root = Tk() t ...
- pig简介
Apache Pig是MapReduce的一个抽象.它是一个工具/平台,用于分析较大的数据集,并将它们表示为数据流.Pig通常与 Hadoop 一起使用:我们可以使用Apache Pig在Hadoop ...
- Python中续行符的注意事项
转载自:https://blog.csdn.net/g_66_hero/article/details/78745608
- Django 之多表查询 与多表的使用
1.django的多表查询 主要区分为: 正向查询 逆向查询 1. 多表查询: 是一个复杂的查询,他分为对象查询和__模糊查询两种方式 2. 多表查询: 又分为 一对一查询, 一对多查询, 多对 ...
- sonar自定义规则
Sonar并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD 等)直接显示在 Web 页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方 ...
- 机器学习进阶-直方图与傅里叶变换-图像直方图 1.cv2.calc(生成图像的像素频数分布(直方图))
1. cv2.calc([img], [0], mask, [256], [0, 256]) # 用于生成图像的频数直方图 参数说明: [img]表示输入的图片, [0]表示第几个通道, mask表 ...
- day03-变量
Python中的变量类型有: int:带正负号的整数long:在python2中表示长整数,在python3中被放弃complex:复数str:字符串True,False:布尔list:列表dict: ...
- PLSQLDeveloper_免安装自带client
PLSQLDeveloper_解压版 免安装并且自带有client客户端. 要安装解压附带的readme.txt进行配置. 一. 目录结构 D:\install\PLSQL |-- instantcl ...