我的博客简单简洁 可能表达不清. 如有想法, 敬请留言.谢谢! 群:881784250

https://github.com/ccaleb/endless-runner/tree/master/javascript-pixi/pixi.js-master

1:pixi.js的优点

代码简单,性能高效,扩展性强

PixiJS的性能优势, pixi.js专注于渲染,在js2d游戏引擎中,其性能是相当彪悍的。(官网上说最强) 见测试 https://www.goodboydigital.com/pixijs/bunnymark/?base=pixijs&category=bunnymark

PixiJS有着"简单"的代码, 友好的API,loader.add().add().load(),    label.centerXY()

PixiJS易扩展,能发挥你无穷的想象力通过装一些插件,可以更方便的实现一些功能.龙骨功能,透视功能,都过插件都可以实现

PIXIJS一直在维护,一直在更新, 其模块化的思想相当先进.

2 核心是Sprite. PIXI.Sprite->PIXI.Container->PIXI.DisplayObject

Sprite对象是渲染到屏幕的所有纹理对象的基础,能轻轻松松改变纹理,只要.sprite.texture = ...

Sprite默认是不响应点击等事件的,必须 Interactive

怎样创建srptie呢?

new Sprite(texture?)         常用方式

Sprite.from(source);         快捷方式. @param source, 可以是url地址,canvas,纹理

Sprite.fromFrame(key);    快捷方式 @param key 为json中的key,或加载时定义的key

Sprite.fromImage(url, crossorigin?:, scaleMode?:);  快捷方式  @param url,不解释

常用属性pivot, anchor, position, scale,texture 是不是一看就知道是干嘛的.

3 Pixi只做三件事  Pixi helped me with 3 main things:

  • loading and displaying of assets
  • interactivity
  • game loop

4 一些有用的东西

可用命令行编译spritesheet  npm install sprietsheet -g

app.ticker()             loop及time

处理九宫格    Pixi.mesh.NineSlicePlane(texture, x, y, width, height)

pointer事件(鼠标和touch)   mouse事件(鼠标) tap事件(touch),  比较好的是, sprite.on('pointerdown', fun), fun中this会是sprite

获取全局坐标         app.renderer.plugins.interaction.mouse.global

PIXI inspector      An extension to the Chrome DevTools for inspecting Pixi.js games/applications.

loader.add(..........).on('progress", loadProgress).load(complete)  加载完成后的资源是保存在PIXI.loader.resources中,键值就是url或设置的key

PIXI.util里面包含了一些很有用东西. 比如isMobile,EventEmitter,TextureCache......

PIXI.extras需面也包含了一些有用的东西 例如 AnimatedSprite, BitmapText, Tiling等等,例如Tiling处理一些滚动效果是很高效的

5 pixi中常见的问题:

spriteA可以添加spriteB,spriteA宽高为1,这时需要用Container, sprite的宽高取决于sprite中纹理的宽高.

dis.stage为空, 需要注意.应用 app.stage

graphics 是继承容器的, 添加graphic有效没?

ui的问题,纯粹的用sprite,txt处理不复杂的界面搓搓有余.但是处理scroller和list是有点困难的.   用第三方ui框架 spown,ezgui都是有点问题的,通过egret编辑界面.然后导成pixi.js代码...

6 其他资料

多纹理渲染   http://phaser.io/tutorials/advanced-rendering-tutorial/part2

下面是老外的演讲的一些how

Things Audience Members Will Learn   观众会学到的东西

  • How to set up and get Pixi.js app running    怎样让pixi运行
  • How to use its basic features                        怎样用它的基本功能 
    • Sprites
    • Graphics
    • Interaction
  • How to use the more advanced features     怎样用它的先进功能
    • Filters
    • Custom Filters
    • Particles
    • Meshes
    • Ropes
    • RenderTextures
    • Exporting Data
  • How to optimise your scene for Pixi.js      怎样优化

性能测试:   multi texture batching         https://phaser.io/tutorials/advanced-rendering-tutorial/part2

pixi.js > phaser3 > phaser2  https://github.com/themoonrat/webgl-benchmark

线上例子   欢乐球球 是pixi.js和three.js开发的~

 var e = canvas.getContext("webgl", {
alpha: !1,
antialias: !1,
preserveDrawingBuffer: !1,
premultipliedAlpha: !1
});
e.colorMask(!0, !0, !0, !0), this.renderer3D = new THREE.WebGLRenderer({
context: e,
canvas: canvas,
premultipliedAlpha: !1,
alpha: !1
}), this.renderer3D.setPixelRatio(window.devicePixelRatio), this.renderer3D.setSize(window.innerWidth, window.innerHeight),
this.renderer3D.shadowMap.enabled = a.default.enableShadow, this.renderer3D.autoClear = !1,
this.state3D = this.renderer3D.state, a.default.stageWidth = canvas.width, a.default.stageHeight = canvas.height,
SPE.valueOverLifetimeLength = 3, (0, s.setSharedCanvasSize)(canvas.width, canvas.height),
PIXI.settings.isLittleGame = !0, PIXI.settings.MAX_TEXTURES = 4, PIXI.settings.MAX_VERTEX_ATTRIBS = 16,
PIXI.settings.RESOLUTION = 1, PIXI.settings.SCALE_MODE = PIXI.SCALE_MODES.LINEAR,
PIXI.settings.CAN_UPLOAD_SAME_BUFFER = !0, PIXI.settings.SPRITE_BATCH_SIZE = 256,
PIXI.settings.GC_MODE = PIXI.GC_MODES.MANUAL, PIXI.settings.MIPMAP_TEXTURES = !1,
e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL, !1), this.pixiApp = new PIXI.Application({
view: canvas,
context: e,
width: window.innerWidth,
height: window.innerHeight,
resolution: window.devicePixelRatio,
forceCanvas: !1,
clearBeforeRender: !1,
roundPixels: !1,
transparent: !1,
legacy: !0,
sharedLoader: !0,
autoStart: !1,
sharedTicker: !0
}), this.pixiApp.ticker.autoStart = !1, this.pixiApp.ticker.stop(), this.pixiApp.removeRenderTick(),

  

pixi.js 总结的更多相关文章

  1. (原)用pixi.js 实现 方块阵点击后原地自转效果

    源码 各位,请教一个问题,我这个还有BUG,我是想实现,点击一下可以 停止转动,然后再点一下重新转动.而不是一直加速,有没有什么好办法?  PS:问题已经解决,谢谢评论的大神@Antineutrino ...

  2. 让hammer完美支持Pixi.js - 2D webG库

    由于项目改造,采用2D webG的pixi库,那么基于canvas的结构上,事件就是最大的一个问题了 改造的原理很简单,把hammer里面的addEventListeners事件绑定给第三方库代替,事 ...

  3. 利用pixi.js制作精灵动画

    CSS Sprites 技术对于广大的前端工程师来说应该是一点也不陌生.国内开发者昵称为CSS精灵,通过一定的技术手段,让精灵动起来,我称其为精灵动画,那么目前有哪些实现方式 呢?下面让我们详细的聊聊 ...

  4. pixi.js教程中文版--基础篇

    前言 Pixi.js使用WebGL,是一个超快的HTML5 2D渲染引擎.作为一个Javascript的2D渲染器,Pixi.js的目标是提供一个快速的.轻量级而且是兼任所有设备的2D库.提供无缝 C ...

  5. HTML5游戏开发引擎Pixi.js完全入门手册(一)框架简介及框架结构分析,作者思路剖析

    前言: 最近无聊在淘宝弄了个小店,打算做一个兼职.遇到一个客户,要我帮忙拷贝一个html5游戏.. 我这人有一个习惯,拿到自己没见过的东西.都会去研究一番.去网上查了下发现,资料都是英文版.感觉极度不 ...

  6. pixi.js

    添加基本文件(库文件) 渲染库 pixi.js pixi.lib.js是pixi.js的子集,依赖class.js,cat.js,event_emiter.js文件 pixi.scroller.js ...

  7. 三星a9上测试egret与pixi.js的渲染性能

    for (let i = 0; i < 500; i++) { let shape = new egret.Shape(); shape.graphics.beginFill(0xff0000) ...

  8. pixi.js v5 快速了解

    pixi.js 追求简单,  性能,高价值. pixi.js v5将是一交比较大的升级,代码更加精简,性能更加强悍,功能更加丰富,扩展更加高效 pixi.js一步一脚印,版本持续稳定的更新, 深入学习 ...

  9. pixi.js + three.js

    three.js    最好的webgl 3d渲染库之一, pixi.js    最好的webgl 2d渲染库之一,也许可以把之一去掉 两个库都很精简,如果把两个库结合起来,一定很爽很爽,你说是吧! ...

  10. 如何在PIXI.js里面使用json文件来管理瓦片集(tileset)?

    如何在PIXI.js里面使用json文件来管理瓦片集(tileset)? PIXI建议我们将素材图片汇总成一个瓦片集(tileset),然后用纹理地图集(texture atlas,通常是一个json ...

随机推荐

  1. 使用cJSON库解析JSON

    cJSON库的下载 cJSON是一个基于C的JSON解析库,这个库非常简单,只有cJSON.c和cJSON.h两个文件,支持JSON的解析和封装,需要调用时,只需要#include "cJS ...

  2. restful framework之权限组件

    一.权限简介 只用超级用户才能访问指定的数据,普通用户不能访问,所以就要有权限组件对其限制 二.局部使用 from rest_framework.permissions import BasePerm ...

  3. Python值hashlib详解

    一.hashlib的基本概念 .什么叫hash:hash是一种算法(不同的hash算法只是复杂度不一样)(.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SH ...

  4. 【轮子狂魔】WeChatAPI 开源系统架构详解

    如果使用WeChatAPI,它扮演着什么样的角色? 从图中我们可以看到主要分为3个部分: 1.业务系统 2.WeChatAPI: WeChatWebAPI,主要是接收微信服务器请求: WeChatAP ...

  5. JavaScript 数组——filter()、map()、some()、every()、forEach()、lastIndexOf()、indexOf()

    filter():   语法: var filteredArray = array.filter(callback[, thisObject]); 参数说明: callback: 要对每个数组元素执行 ...

  6. 火狐浏览器油猴子GreaseMonkey使用教程

    火狐浏览器油猴子GreaseMonkey使用教程 首先下载火狐浏览器 安装成功后用火狐浏览器打开链接,界面如下 然后搜索GreaseMonkey. 搜索结果,图标是个小猴子,然后添加到火狐浏览器,成功 ...

  7. TensorFlow Python3.7环境下的源码编译(一)环境准备

    参考: https://blog.csdn.net/yhily2008/article/details/79967118 https://tensorflow.google.cn/install/in ...

  8. win10系统安装docker注意事项

    首先要确保win10系统支持 hyper-v 技术. 然后按照官网的流程下载,安装,基本上不会出什么问题.安装好之后使用,需要进行以下几个操作 access denied问题的解决 按win+R,输入 ...

  9. 相机标定与矫正opencv+MATLAB

    博客转载自:http://blog.csdn.net/Loser__Wang/article/details/51811347 本文目的在于记录如何使用MATLAB做摄像机标定,并通过opencv进行 ...

  10. RenderSprite小记

    类型定义: /** @private */ public static const IMAGE:int = 0x01; /** @private */ public static const ALPH ...