初识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一步一脚印,版本持续稳定的更新, 深入学习 ...
随机推荐
- springcloud(七,多个服务消费者配置,以及zuul网关案例)
spring cloud (一.服务注册demo_eureka) spring cloud (二.服务注册安全demo_eureka) spring cloud (三.服务提供者demo_provid ...
- jsplumb 初识
Jsplumb官网:https://jsplumbtoolkit.com GitHub:https://github.com/sporritt/jsplumb/ 有很多官网示例 基础教程:htt ...
- kubernetes之coredns玩法
一.概述 新版本的kubernetes默认使用了coredns,这里就不赘述了.直达车:https://coredns.io/.https://kubernetes.io/docs/tasks/adm ...
- 补习系列(12)-springboot 与邮件发送【华为云技术分享】
目录 一.邮件协议 关于数据传输 二.SpringBoot 与邮件 A. 添加依赖 B. 配置文件 C. 发送文本邮件 D.发送附件 E. 发送Html邮件 三.CID与图片 参考文档 一.邮件协议 ...
- NetCore HttpClient The SSL connection could not be established, see inner exception
之前遇到一个问题 https://www.cnblogs.com/leoxjy/p/10201046.html 在centos 7.x HttpClient访问会出问题 The SSL conne ...
- Java基础之UDP协议和TCP协议简介及简单案例的实现
写在前面的废话:马上要找工作了,做了一年的.net ,到要找工作了发现没几个大公司招聘.net工程师,真是坑爹呀.哎,java就java吧,咱从头开始学呗,啥也不说了,玩命撸吧,我真可怜啊. 摘要: ...
- juc包下四大并发工具
juc.CountDownLatch 闭锁 一个线程在等待一组线程后再恢复执行 await()等待其他线程执行完毕 被等待线程执行完毕后计数器-1 如何知道其他线程执行完了? 计数器,若一组线程为,C ...
- [Silverlight 4] 參數的傳遞方法
Silverlight都會有一個專案叫 *.Web,有個ManagePage.aspx裝戴Silverlight元件,也是應用程式的入口 然後還會有一個專案(此處叫ManageBack),會編譯成Si ...
- Guava工具类学习
目录 一.介绍 二.Optional类 1.定义 2.java8自带Optional 3.使用 三.Preconditions类 1.定义 2.使用 四.Ordering类 1.定义 2.使用 五.R ...
- logger(二)logback简介及其实现原理
一.logback简介 logback是log4j创始人写的,性能比log4j要好,目前主要分为3个模块 logback-core:核心代码模块 logback-classic:log4j的一个改良版 ...