由于项目需要接触到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的更多相关文章

  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. 初识node.js(通过npm下载项目依赖的包的过程)

    一.初识node.js 简单的说Node.js 就是运行在服务器端的JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js是一个事 ...

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

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

  9. pixi.js v5 快速了解

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

随机推荐

  1. [转载]3.14 UiPath图片操作截图的介绍和使用

    一.截图(Take Screenshot)的介绍 截取指定的UI元素屏幕截图的一种活动,输出量仅支持图像变量(image) 二.Take Screenshot在UiPath中的使用 1.打开设计器,在 ...

  2. Adams宏导出

    var set var=ip integer_value=1 var set var=macro_name str="" for variable_name=the_macro o ...

  3. python运维开发常用模块(三)DNS处理模块dnspython

    1.dnspython模块介绍: dnspython(http://www.dnspython.org/)是Python实现的一个DNS 工具包,它支持几乎所有的记录类型,可以用于查询.传输并动态更新 ...

  4. Shell脚本——求随机数的最值

    写一个脚本,利用RANDOM生成10个随机数,并找出其中的最大值,和最小值: #!/bin/bash # MAX= MIN= ..};do RAN=$RANDOM [ $i -eq ] &&a ...

  5. json工具类(三)——net包

    package com.ruoyi.common.utils.json; import java.util.List; import java.util.Map; import net.sf.json ...

  6. 【CTS2019】氪金手游(动态规划)

    [CTS2019]氪金手游(动态规划) 题面 LOJ 洛谷 题解 首先不难发现整个图构成的结构是一棵树,如果这个东西是一个外向树的话,那么我们在意的只有这棵子树内的顺序关系,子树外的关系与这棵子树之间 ...

  7. golang学习笔记 ---slice

    Go 语言中的slice类型可以理解为是数组array类型的描述符,包含了三个因素: 指向底层数组的指针 slice目前使用到的底层数组的元素个数,即长度 底层数组的最大长度,即容量 因此当我们定义一 ...

  8. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa1 in position 3: invalid start byte错误解决办法

    这类错误的原因是编码造成的,通常情况下都是utf-8编码,这需要变换一下,改成encoding="ISO-8859-1"即可: file = pd.read_csv("/ ...

  9. 2019-11-29-win7-无法启动-WPF-程序-D3Dcompiler_47.dll-丢失

    原文:2019-11-29-win7-无法启动-WPF-程序-D3Dcompiler_47.dll-丢失 title author date CreateTime categories win7 无法 ...

  10. NET 在一个数组中查找另一个数组所在起始位置(下标从0开始,未找到返回-1)

    问题: 如果 search 在 dist 中顺序出现而不要求连续出现,那代码应该如何修改?如何计算这种匹配的可能性? 数组 search=[5,4,6],在数据 dist=[1,5,5,4,3,4,5 ...