返回顶部
首页 > 资讯 > 精选 >PixiJS的Sprite类如何使用
  • 216
分享到

PixiJS的Sprite类如何使用

2023-07-05 04:07:14 216人浏览 独家记忆
摘要

本文小编为大家详细介绍“Pixijs的Sprite类如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“PixiJS的Sprite类如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Spritepixij

本文小编为大家详细介绍“Pixijs的Sprite类如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“PixiJS的Sprite类如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

    Sprite

    pixijs 的 Sprite 类用于将一些纹理(Texture)渲染到屏幕上。

    Sprite 直译为 “精灵”,是游戏开发中常见的术语,就是将一个角色的多个动作放到一个图片里,通过裁剪局部区域得到当前的角色状态图。

    Sprite 的纹理通常为图片。

    创建 Sprite 不用 new 关键字,而是用 PIXI.Sprite.from(url) ,传一个图片地址字符串

    const watermelon = PIXI.Sprite.from('./fe_watermelon.jpg');watermelon.x = 50;watermelon.y = 50;app.stage.addChild(watermelon);

    加载图片是异步的,如果图片较大,或网速不好,加载完成的时机就会比较晚了。

    加载慢,其他不需要加载的普通图形(比如矩形)才不会等你,会先绘制。然后等到图片加载好后,再更新图形树绘制新的画面。

    模拟网速慢,导致图片加载迟缓的效果:

    PixiJS的Sprite类如何使用

    一些属性

    tint

    tint (大概是 “色相” 的意思)会给图片着色:

    img.tint = 0x00FF00;

    可以看到,西瓜变得更绿了。

    PixiJS的Sprite类如何使用

    这在游戏中可以利用绿色的 tint 表示角色中毒,或者用灰色的 tint 表示天色已晚。

    blendMode

    然后是渲染模式 blendMode,目前只支持 4 种(基于 webGL):

    • NORMAL:正常,即没有滤镜效果;

    • ADD:给下面的像素叠加 RGB 通道;

    • MULTIPLY:正片叠底,效果是:像是很多张幻灯片叠在一起,因为密度大导致颜色加深;

    • SCREEN:滤色,效果是发亮;

    anchor

    上一节讲解 “修改图形属性” 时,我们提到了通过 pivot 修改变形(transform)的中心,但对于 Sprite 来说,额外提供了一个特殊的 anchor 属性。

    这个属性的值范围为 0~1,表示相对图片宽高位置的百分比,比如设置为 (0.5, 0.5) 就是取宽高一半的位置作为旋转中心,也就是图片的中点。

    img.anchor.set(x, y);

    SpriteSheet

    SpriteSheet 是管理多个 Sprite 的类,就是前面说的将多个角色的状态放在一起。

    优点是:

    • 加快加载速度:因为多个 sprit 放在一个图片上了;

    • 提高批渲染效率:pixijs 快的秘诀是使用尽量少的 draw call(CPU 通知 GPU 绘制,比 GPU 绘制还耗时),将多个 sprite 放在一起有助于批渲染。

    const atlasData = {  // 如何裁剪图片中的内容来生成多个 sprite  frames: {    enemy1: {      frame: { x: 0, y: 0, w: 32, h: 32 },      sourceSize: { w: 32, h: 32 },      spriteSourceSize: { x: 0, y: 0, w: 32, h: 32 },    },    enemy2: {      frame: { x: 32, y: 0, w: 32, h: 32 },      sourceSize: { w: 32, h: 32 },      spriteSourceSize: { x: 0, y: 0, w: 32, h: 32 },    },  },  // 图片元信息  meta: {    image: "images/spritesheet.png",    format: "RGBA8888",    size: { w: 128, h: 32 },    scale: 1,  },  // 如果使用动画,动画帧对应的 sprit  animations: {    enemy: ["enemy1", "enemy2"],  },};// 创建 spritesheetconst spritesheet = new PIXI.Spritesheet(  PIXI.BaseTexture.from(atlasData.meta.image),  atlasData);// 生成材质,这是异步的await spritesheet.parse();// 播放动画const anim = new PIXI.AnimatedSprite(spritesheet.animations.enemy);anim.animationSpeed = 0.1666;anim.play();app.stage.addChild(anim);

    读到这里,这篇“PixiJS的Sprite类如何使用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

    --结束END--

    本文标题: PixiJS的Sprite类如何使用

    本文链接: https://lsjlt.com/news/349415.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • PixiJS的Sprite类如何使用
      本文小编为大家详细介绍“PixiJS的Sprite类如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“PixiJS的Sprite类如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Spritepixij...
      99+
      2023-07-05
    • 如何在CSS中使用Sprite雪碧图
      本篇文章为大家展示了如何在CSS中使用Sprite雪碧图,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。雪碧图的使用场景静态图片,不随用户信息的变化而变化。小图片,容量比较小(2~3k)。图片加载量比...
      99+
      2023-06-08
    • css-sprite的使用方法
      本篇内容介绍了“css-sprite的使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!可能是最好用的...
      99+
      2024-04-02
    • 如何用css sprite工具生成雪碧图
      如何用css sprite工具生成雪碧图,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。什么是css spriteCSS sprite在国内很多...
      99+
      2024-04-02
    • python使用pygame创建精灵Sprite的案例
      这篇文章主要介绍python使用pygame创建精灵Sprite的案例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一 、精灵(Sprite),屏幕上的对象。精灵组是精灵的组合。创建空的精灵组对象:精灵组可以对其中的...
      99+
      2023-06-14
    • Java的Period类如何使用
      这篇文章主要介绍“Java的Period类如何使用”,在日常操作中,相信很多人在Java的Period类如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java的Period类如何使用”的疑惑有所帮助!...
      99+
      2023-06-30
    • Java的Duration类如何使用
      本文小编为大家详细介绍“Java的Duration类如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java的Duration类如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Duration和Pe...
      99+
      2023-06-30
    • java的String类如何使用
      本文小编为大家详细介绍“java的String类如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“java的String类如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、认识String1.JDK...
      99+
      2023-06-30
    • Java的Class类和Object类如何使用
      这篇文章主要介绍“Java的Class类和Object类如何使用”,在日常操作中,相信很多人在Java的Class类和Object类如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java的Class类...
      99+
      2023-06-02
    • 如何使用Unsafe类
      这篇文章主要讲解了“如何使用Unsafe类”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Unsafe类”吧!Unsafe 基础首先我们来尝试获取一个Unsafe实例,如果按照new的...
      99+
      2023-06-15
    • java.lang.String类如何使用
      Java中的`java.lang.String`类是一个非常常用的类,用于表示字符串。以下是一些常见的`String`类的用法:1....
      99+
      2023-08-18
      java
    • java.lang.math类如何使用
      java.lang.Math类是一个Java内置的工具类,它提供了一系列的数学运算方法。你可以直接使用Math类提供的静态方法来进行...
      99+
      2023-08-24
      java
    • 如何正确的使用Class类
      这篇文章给大家介绍如何正确的使用Class类,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。任何一个类都是Class类的实例对象,这个实例对象有三种表示方式第一种表示方式(任何一个类都有一个隐含的静态成员变量class)...
      99+
      2023-05-31
      class类
    • ES6中的Proxy类如何使用
      这篇文章主要介绍了ES6中的Proxy类如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ES6中的Proxy类如何使用文章都会有所收获,下面我们一起来看看吧。Object在 ES5 中,我们可以定义一个对...
      99+
      2023-07-06
    • vue如何封装自己的Svg图标组件库(svg-sprite-loader)
      目录vue封装自己的Svg图标组件库安装及配置方法vue使用svg封装图标组件,代替img图片提高性能可行性分析实践方案总结vue封装自己的Svg图标组件库 安装及配置方法 一、安装...
      99+
      2023-05-17
      vue封装Svg图标组件库 svg-sprite-loader vue Svg图标组件库
    • 如何使用Ajax类库
      如何使用Ajax类库,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。具体如下:ajax.jsfunction Ajax(recvT...
      99+
      2024-04-02
    • ADO.NET如何使用DataAdapter类
      这篇文章主要介绍ADO.NET如何使用DataAdapter类,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!ADO.NET使用还是比较常用的,于是我研究了一下ADO.NET,在这里拿出来和大家分享一下,希望对大家有用...
      99+
      2023-06-17
    • python中类如何使用
      这期内容当中小编将会给大家带来有关python中类如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、类的成员类的成员包括:属性和方法。属性可以分为:静态属性和实例属性方法可以分为:普通方法、类方法...
      99+
      2023-06-15
    • 如何使用ADO.NET DbProviderFactories类
      小编给大家分享一下如何使用ADO.NET DbProviderFactories类,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!ADO.NET发展还是很快的,就使...
      99+
      2023-06-17
    • VB.NET如何使用TextBox类
      这篇文章主要为大家展示了“VB.NET如何使用TextBox类”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET如何使用TextBox类”这篇文章吧。TextBox组件(文本框组件)是一...
      99+
      2023-06-17
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作