由于项目需要接触到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. Oracle常用函数集锦

    1.wmsys.wm_concat函数 将列转为行.例子: --表里的数据如下 SQL> select * from idtable; ID NAME ---------- ---------- ...

  2. react 16 渲染整理

    背景 老的react架构在渲染时会有一些性能问题,从setstate到render,程序一直在跑,一直到render完成.才能继续下一步操作.如果组件比较多,或者有复杂的计算逻辑,这之间的消耗的时间是 ...

  3. 明解C语言 入门篇 第六章答案

    练习6-1 /* 求两个整数中的最小值 */ #include <stdio.h> /*--- 返回三个整数中的最小值 ---*/ int min2(int a, int b) { int ...

  4. Java内部类是如何实现的

    内部类(inner class)是定义在另一个类中的类. 内部类方法可以访问该类定义所在的作用域中的数据,包括私有的数据. 内部类可以对同一个包中的其他类隐藏起来 当想定义一个回调函数且不想编写大量代 ...

  5. FGPA异步信号问题

    FPGA在处理异步信号时,尽量打1~2拍寄存器,否则在线调试会发现各种奇怪问题. 下面是verilog代码 在线调试发现,计数器在跳变 原因是cmd_start由ARM输出,与FPGA时钟异步,需要打 ...

  6. Java设计模式原型模式

    原型模式: – 通过new产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式. – 就是java中的克隆技术,以某个对象为原型,复制出新的对象.显然,新的对象具备原型对象的特点 – 优势 ...

  7. PIE SDK矢量栅格化算法

    1.算法功能简介 矢量栅格化,由矢量数据向栅格数据的转换一般比较方便.对于点.线目标,由其所在的栅格行.列数表示,对于面状目标,则需判定落人该面积内的像元.通常栅格(像元)尺寸均大于原来坐标表示的分辨 ...

  8. js获取客户端IP

    获取客户端公网IP <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script> <scr ...

  9. APICloud项目纪要

    一.页面之间的传递参数通过pageParam传递参数: api.openWin({ name: 'ware', url: './ware.html', pageParam: { wareId: 'w1 ...

  10. 5G:为人工智能与智能制造赋能

    近几年,全球有两大科技领域越来越热:一个是人工智能,另一个是5G.两者都是能够改变时代.改变社会.改变经济的颠覆性技术.目前,我国已经发放了四张5G牌照,5G产业处在爆发前夜的阶段:人工智能方面,业界 ...