初识PIXI.js
由于项目需要接触到PIXI这个框架,故开始了一顿打头操作
由于目前PIXI的文档还是很少,而且大多数是英文文档这里提供几个PIXI的demo和文档
demo: http://47.99.120.179/pixi/v4/#/demos-basic/container.js
API:http://pixijs.download/release/docs/index.html
中文文档:https://www.bookstack.cn/read/LearningPixi/introduction
按照中文文档来基本上可以了解一些关于PIXI的知识,注:如果是在vue中写pixi的话,在通过json加载纹理贴图集的时候,应该把json放在static中否则是加载不出来的
这里现在了一个demo,画栅格,如下图所示
直接先贴上代码
<template>
<div class="jsonBox">
<div id="pixi" style="z-index:-1;"></div>
</div>
</template> <script>
//统一配置
let Application = PIXI.Application,
Container = PIXI.Container,
loader = PIXI.loader,
resources = PIXI.loader.resources,
TextureCache = PIXI.utils.TextureCache,
Sprite = PIXI.Sprite,
Rectangle = PIXI.Rectangle; //Create a Pixi Application
let app = new Application({
width: 512,
height: 512,
antialias: true,
transparent: false,
resolution: 1,
backgroundColor:"0xd1cfcd"
});
export default {
name: 'jsonBox',
data(){
return{
v_appWi:0,
v_appHi: 0,
site:{
x:500,
y:500
},
bgPic:{},
gridSize:50,
scale:1,
offsetX:0,//场景容器决定定位偏移值
offsetY:0,//场景容器决定定位偏移值
gridAdd:50,
sprite_w:140,
sprite_h:60,
sprite_w1:50,
sprite_h1:50,
scene_w:window.innerWidth,
scene_h:window.innerHeight,
};
},
methods: {
init_pixi() {
this.contain = document.getElementById("pixi");
app.renderer.resize(window.innerWidth, window.innerHeight);
this.contain.appendChild(app.view);
this.drawGrid()
},
//绘制网格
drawGrid(add_w){
let ew=add_w || 0;
let color="0xA8ACB5";
let line=new PIXI.Graphics();
console.log(line)
console.log(this.scene_w)
line.lineStyle(1, color, 1);
let canvas_h=this.scene_h ||800;
let canvas_w=this.scene_w+ew || 1000;
let h_count=Math.floor(canvas_h/this.gridSize);
let v_count=Math.floor(canvas_w/this.gridSize);
let center_line_h=Math.floor((this.scene_h/2)/this.gridSize);
let center_line_v=Math.floor((this.scene_w/2)/this.gridSize);
for(let i=-this.gridAdd;i<=h_count+this.gridAdd;++i){
if(i==center_line_h){
line.lineStyle(3,0xFFFFFF,1);
line.moveTo(0,i*this.gridSize+this.offsetY);
line.lineTo(canvas_w,i*this.gridSize+this.offsetY);
line.lineStyle(1, color, 1);
continue;
}
line.moveTo(0,i*this.gridSize+this.offsetY);
line.lineTo(canvas_w,i*this.gridSize+this.offsetY);
}//画横线
for(let i=-this.gridAdd;i<=v_count+this.gridAdd;++i){
if(i==center_line_v){
line.lineStyle(3,0xFFFFFF,1);
line.moveTo(i*this.gridSize+this.offsetX,0);
line.lineTo(i*this.gridSize+this.offsetX,canvas_h);
line.lineStyle(1, color, 1);
continue;
}
line.moveTo(i*this.gridSize+this.offsetX,0);
line.lineTo(i*this.gridSize+this.offsetX,canvas_h);
}//画竖线
if(app.stage.children.length==0){
app.stage.addChild(line);
}
else {
app.stage.removeChildAt(0);
app.stage.addChildAt(line, 0);
}
}
},
mounted: function() { if (browser.versions.mobile && !browser.versions.iPad) {
this.v_appWi = document.getElementById("pixi").offsetWidth;
} else {
this.v_appWi = Math.min(600, document.getElementById("pixi").offsetWidth);
}
this.init_pixi();
},
}
</script>
初识PIXI.js的更多相关文章
- (原)用pixi.js 实现 方块阵点击后原地自转效果
源码 各位,请教一个问题,我这个还有BUG,我是想实现,点击一下可以 停止转动,然后再点一下重新转动.而不是一直加速,有没有什么好办法? PS:问题已经解决,谢谢评论的大神@Antineutrino ...
- 让hammer完美支持Pixi.js - 2D webG库
由于项目改造,采用2D webG的pixi库,那么基于canvas的结构上,事件就是最大的一个问题了 改造的原理很简单,把hammer里面的addEventListeners事件绑定给第三方库代替,事 ...
- 利用pixi.js制作精灵动画
CSS Sprites 技术对于广大的前端工程师来说应该是一点也不陌生.国内开发者昵称为CSS精灵,通过一定的技术手段,让精灵动起来,我称其为精灵动画,那么目前有哪些实现方式 呢?下面让我们详细的聊聊 ...
- pixi.js教程中文版--基础篇
前言 Pixi.js使用WebGL,是一个超快的HTML5 2D渲染引擎.作为一个Javascript的2D渲染器,Pixi.js的目标是提供一个快速的.轻量级而且是兼任所有设备的2D库.提供无缝 C ...
- HTML5游戏开发引擎Pixi.js完全入门手册(一)框架简介及框架结构分析,作者思路剖析
前言: 最近无聊在淘宝弄了个小店,打算做一个兼职.遇到一个客户,要我帮忙拷贝一个html5游戏.. 我这人有一个习惯,拿到自己没见过的东西.都会去研究一番.去网上查了下发现,资料都是英文版.感觉极度不 ...
- pixi.js
添加基本文件(库文件) 渲染库 pixi.js pixi.lib.js是pixi.js的子集,依赖class.js,cat.js,event_emiter.js文件 pixi.scroller.js ...
- 初识node.js(通过npm下载项目依赖的包的过程)
一.初识node.js 简单的说Node.js 就是运行在服务器端的JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js是一个事 ...
- 三星a9上测试egret与pixi.js的渲染性能
for (let i = 0; i < 500; i++) { let shape = new egret.Shape(); shape.graphics.beginFill(0xff0000) ...
- pixi.js v5 快速了解
pixi.js 追求简单, 性能,高价值. pixi.js v5将是一交比较大的升级,代码更加精简,性能更加强悍,功能更加丰富,扩展更加高效 pixi.js一步一脚印,版本持续稳定的更新, 深入学习 ...
随机推荐
- 关于DTO的定义问题。以及C#语言扩展的思考。
数据传输对象 是我们经常用到的一个东西.有时候我们称之为的ViewModel也属于其中之一. 但是以往,我们总是 复制 实体类型的一些字段 然后单独创建这些对象.然后我们使用对象映射工具 进行值层面的 ...
- [MSSQL]找出一天数据中从第一条数据开始每累加1小时的数据
用Sql Server找出一天数据中从第一条数据开始每累加1小时的数据 -- ============================================= -- Author: Alle ...
- W5500电路图
W5500是韩国一款集成全硬件 TCP/IP 协议栈的嵌入式以太网控制器,W5500同时也是一颗工业级以太网控制芯片,最近发现我们国内也有和W5500 芯片一样芯片 介绍给大家 如下图:
- unity工具开发
1.EditorWindow通过拖拽获取文件夹或者文件路径 #region 拖拽相关 Rect rect4 = EditorGUILayout.GetControlRect(); //将上面的框作为文 ...
- 【C++】如何使用GCC生成动态库和静态库
一.静态库和动态库的定义及区别 程序编译的四个过程: 1.预处理 展开头文件/宏替换/去掉注释/条件编译(.i后缀) 2.编译 检查语法,生成汇编(.s后缀) 3.汇编 汇编代码转换成机 ...
- Appium+python自动化(四)- 如何查看程序所占端口号和IP(超详解)(番外篇)
简介 这篇博文和分类看似没有多大关系,但是也是从上一篇衍生出来的产物,因为涉及到FQ工具Lantern,就算是给关注和支持的小伙伴们拓展一下眼界和知识面.而且好多人都阅读了上一篇没发现那个参考博客点不 ...
- 深入V8引擎-默认Platform之mac篇(2)
先说结论,V8引擎在默认Platform中初始化的这个线程是用于处理类似于setTimeout的延时任务. 另外附一些图,包括继承树.关键属性归属.纯逻辑工作流程,对代码木得兴趣的看完图可以X掉了. ...
- HTML CSS布局定位
我们在编写网页代码时,首先应该做的就是设计好页面的布局形式,然后再往里面填充内容.网页布局的好与坏,直接决定了网页最终的展示效果.PC端常见的网页布局形式有两列布局.三列布局等.在CSS中,我们通常使 ...
- python 排序冒泡排序与双向冒泡排序
冒泡排序: 冒泡排序就是每次找出最大(最小)元素,放在集合最前或最后,这是最简单的排序算法 def bubble_sort(collection): #升序排列 length=len(collecti ...
- vue中路由在新的标签页打开
如下 let routeData = this.$router.resolve({ name: 'commercialPreview', query: {cylType: this.$route.qu ...