[pixi.js]刚学pixi.js做记录 创建应用 添加图片精灵

2024-04-20 07:48

本文主要是介绍[pixi.js]刚学pixi.js做记录 创建应用 添加图片精灵,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

pixi.js是用于在canvas上绘制2d图像的库,他使用了webGL,可以使用硬件渲染,所以速度很快,可以达到很迅速的绘制效果。

基本引入

首先引入pixi.js 这个直接去官网找就行
pixi.js

在页面中引入:

<script src="../pixi.min.js"></script>

这玩意很大,文章版本4.5.5就要411kb(在网页中传输压缩格式108kb)pixi.js 5.0.0版本。

查看你的浏览器是否支持WebGL

let type = "WebGL";if(!PIXI.utils.isWebGLSupported()){type = "canvas";}PIXI.utils.sayHello(type);

成功之后会在控制台显示渲染方式

创建canvas视图与舞台

首先创建一个新的pixi应用

let app = new PIXI.Application({backgroundColor:0xff00ffantialias:true,
})
document.body.appendChild(app.view)//app.view是一个canvas对象

上面的代码创建了个新的应用,设置其为透明,并且开启了抗锯齿(此方法只有在谷歌里面是有用的),然后将其视图(canvas元素)加入到了body中,我们可以在浏览器中看到一个背景颜色为紫色的框框
如果还需要设定大小的话则需要在创建的时候加入大小:

let app = new PIXI.Application(200,300,{transparent:true,antialias:true,
})

这样的话这个canvas窗口,也就是pixi应用的输出窗口是一个透明的宽度为200,高度为300的canvas元素

设定渲染窗口canvas元素的大小

有时候需要将窗口变得和浏览器窗口一样大,那么就需要设定一下

app.renderer.view.style.position = "absolute";
app.renderer.view.style.display = "block";
app.renderer.autoResize = true;
app.renderer.resize(window.innerWidth, window.innerHeight);

这样绘图的窗口就会铺满整个浏览器了

添加精灵图片

向场景中加入一个精灵图片

PIXI.loader.add("imgs/headIcon.png").load(setup)//加载器加载一张图片并且当加载完毕的时候执行setup函数function setup(){let tow = new PIXI.Sprite(PIXI.loader.resources["imgs/headIcon.png"].texture);tow.anchor.set(0.5);//设定中心锚点为中间tow.x = app.screen.width/2;//将位置设置为中间tow.y = app.screen.height/2;app.stage.addChild(tow);//将精灵贴图放进舞台中
}

在上面的流程之后,可以在浏览器中间看到一张图片

为贴图添加简单的动画效果

在setup函数中加入:

app.ticker.add(function(delta) {//delta为增量时间tow.rotation += 0.1 * delta;
});

这个函数中的delta是增量时间,在机器表现良好,运行流畅的时候接近1,如果机器明显卡顿,增量时间将明显大于1,旋转的速度是基于真实时间的,这样可以避免在明显卡顿的情况 下画面渲染延迟的问题

这篇关于[pixi.js]刚学pixi.js做记录 创建应用 添加图片精灵的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/919687

相关文章

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr

python如何创建等差数列

《python如何创建等差数列》:本文主要介绍python如何创建等差数列的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python创建等差数列例题运行代码回车输出结果总结python创建等差数列import numpy as np x=int(in

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

MySQL 用户创建与授权最佳实践

《MySQL用户创建与授权最佳实践》在MySQL中,用户管理和权限控制是数据库安全的重要组成部分,下面详细介绍如何在MySQL中创建用户并授予适当的权限,感兴趣的朋友跟随小编一起看看吧... 目录mysql 用户创建与授权详解一、MySQL用户管理基础1. 用户账户组成2. 查看现有用户二、创建用户1. 基