建立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 -基础(一)的更多相关文章

  1. 学JS的心路历程 - PixiJS -基础(三)

    今天我们来试着移动图片吧! 首先,一样先把图片放到PIXI的stage中: let app = new PIXI.Application({ width: 800, height: 600, back ...

  2. 学JS的心路历程Day28 - PixiJS -基础(二)

    材质暂存(texture cache) 昨天有说到,图片要放入stage前,需要先把图片转成Sprite的特殊图片物件. 但是我们也可以先将图片放进材质暂存(texture cache). 什么是「材 ...

  3. 学JS的心路历程Day26 - PixiJS -入坑

    后来知道也可以透过canvas让网页动起来! 而PixiJS是使用WebGL在canvas上绘制内容与制作动态 且同时有下列特色: 支持多点触控 掩码与混合模式 可外加WebGL滤镜 多装置支持 等等 ...

  4. 学JS的心路历程 -函式(三)this

    this是什么,取决于被呼叫的呼叫地点. 昨天有提到说,呼叫函式时候会传递隐含参数:arguments和this并讲解了arguments,今天我们就来探讨this吧! 什么是this 我们都会呼叫函 ...

  5. 学JS的心路历程 - JS应用

    各家电商网站都推出了各种活动和现今优惠券,当时在逛PTT时看到了有篇文章,提供代码教大家用JS的方式抢票,看了一下后发现好像很多人好奇这是怎么做的,于是就想说想一篇文章来讲解一下. 我们先来看一下折价 ...

  6. 学JS的心路历程 - JS的Class

    没错,你没有看错,虽然前面说JS是原型继承,但在ES6以后新增了class关键字!!! 不过底层实作仍然是以原型继承方式进行,所以基本上算是一个语法糖. 今天我们就来看一下如何使用吧! class 首 ...

  7. 学JS的心路历程-物件与原型(三)

    昨天有说明到函式与建构式的原型,及指定建构式函式原型为另一个建构式函式,但其实这会造成复写constructor的问题. 复写constructor的问题(vmwork) 我们昨天有提到「建构式函式可 ...

  8. 学JS的心路历程 -物件与原型(二)

    昨天有提到说Object.setPrototypeOf可以指定一个物件为另一个物件的原型,但有想过到底这个原型,也就是[[Prototype]]最终会到何处吗? 答案是Object.prototype ...

  9. 学JS的心路历程-物件与原型(一)

    前两天说明面向对象的三大特性及JS不符合面向对象,只能称作支持面向对象而已,今天我们来看看JS的原型继承. 首先我们先来看,什么是原型(vmwork): 两个物件之间的原型关系(prototype r ...

随机推荐

  1. Hive与HBase集成进行数据分析

    我们把hive的安装包上传的节点3来 解压 现在我们还是老规矩通过notopad++来连接我们的虚拟机来配置文件,把下面这两个文件重命名一下 修改这个文件 对hive-env.sh我们修改这里 下面我 ...

  2. tp3.2 支付宝app支付

    pay方法 /** *支付宝支付 */ public function pay($param) { vendor('alipay.AopSdk');// 加载类库 $config = array( ' ...

  3. css(层叠样式表)属性

    CSS属性相关 宽和高 width属性可以为元素设置宽度. height属性可以为元素设置高度. 块级标签才能设置宽度,内联标签的宽度由内容来决定. 字体属性 文字字体 font-family可以把多 ...

  4. 「2017 山东一轮集训 Day5」距离

    /* 写完开店再写这个题目顿时神清气爽, 腰也不疼了, 眼也不花了 首先考虑将询问拆开, 就是查询一些到根的链和点k的关系 根据我们开店的结论, 一个点集到一个定点的距离和可以分三部分算 那么就很简单 ...

  5. elastalert新增自定义警告推送

    举例,博主公司有自己的内部通讯工具(类似QQ),接下来用IM代称该工具.于是希望elastalert的警告推送可以支持IM的公众号群发功能. 等博主这个月知识库写了再来补充hah

  6. this 基础使用方法

    在Java中,this是调用类中变量和内部类的构造方法的关键词,在对象有同名变量时,可以指定类的变量. 例子1: package example_1; import java.lang.*; publ ...

  7. spring boot js 文件引用 单引问题。

    首页 index.html 访问首页空白 . F12 控制台看页面元素布局.发现有两个body 标签 ,而且 </head> 标红. 各种检查....好像是没有问题. 但就是访问空白.去掉 ...

  8. mybatis关系映射之一对多和多对一

    本实例使用用户(User)和博客(Post)的例子做说明: 一个用户可以有多个博客, 一个博客只对应一个用户 一. 例子(本实体采用maven构建): 1. 代码结构图: 2. 数据库: t_user ...

  9. Android Camera2的使用

    参考:https://developer.android.com/reference/android/hardware/camera2/package-summary.html camera2提供了一 ...

  10. ThinkCentre进入BIOS,设置intel virtualization technology

    VMware安装提示cpu虚拟化intel virtualization technology ThinkCentre重启长按F1 按enter,开启intel virtualization tech ...