由于项目需要接触到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. Python 爬取 13 个旅游城市,告诉你五一大家最爱去哪玩?

    五一假期已经结束,小伙伴是不是都还没有玩过瘾?但是没办法,还有很多bug等着我们去写,同样还有需要money需要我们去赚.为了生活总的拼搏. 今年五一放了四天假,很多人不再只是选择周边游,因为时间充裕 ...

  2. docker 发布应用时添加 git revision

    概要 实施步骤 获取 git revision 前端 git revision 注入 后端 git revision 注入 概要 docker 发布应用时, 将 git revision 注入到应用中 ...

  3. 【网络知识之二】HTTP协议

    HTTP协议(Hypertext Transfer Protocol,超文本传输协议),一种无状态的.应用层的.以请求/应答方式运行的协议,它使用可扩展的语义和自描述消息格式,与基于网络的超文本信息系 ...

  4. 目标检测 <二> TensorFlow安装

    一:创建TensorFlow工作环境目录 1. 在anconda安装目录下找到envs目录然后进入 2. 在当前目录下创建一个文件夹改名为tensorflow 二: 创建TensorFlow工作环境 ...

  5. 基于Laravel框架下使用守护进程supervisor实现定时任务(毫秒)

    本篇文章给大家带来的内容是关于基于Laravel框架下使用守护进程supervisor实现定时任务(毫秒),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 公司需要实现X分钟内每隔Y秒 ...

  6. 云计算入门(一)、使用vagrant+virtualbox安装虚机

    一.vagrant和virtaulbox简介 Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境,我们可以使用它来干如下这些事: 建立和删除虚拟机配置虚拟机运行参数管理虚拟机运行状态 ...

  7. Angulaur导入其他位置的样式

    建立一个统一样式文件base-xxx.component.css 在需要导入样式的组件中,编辑.ts文件导入样式: 右侧是它的相对路径.

  8. WPF MultiBinding,多值转化器IMultiValueConverter,自制调色板 palette

    public class RGBConverter : IMultiValueConverter { //正向修改,整合颜色值 public object Convert(object[] value ...

  9. MD5加密方法HashPasswordForStoringInConfigFile(string,string)过时问题处理方法

    最近写代码的时候一直有一种很奇怪的感觉,查了一下发现原来是系统中的MD5加密方法报了过时的警告,虽然对系统没有任何影响,但是开发过程中绿色波浪线就像挥之不去的阴影一样.开发人员多多少少都会有点强迫症, ...

  10. 我得新博客上线了采用Vue+Layui的结合开发,后台采用asp.net mvc

    地址:www.zswblog.xyz 写完这个博客项目我真的很开心! 希望博客园的大佬们能去看看,如果可以希望帮我在Layui的年度案例点一个赞,谢谢! 地址:https://fly.layui.co ...