当前位置: 首页 > news >正文

旅游资讯网站建设方案做机械设计的要知道哪些网站

旅游资讯网站建设方案,做机械设计的要知道哪些网站,爱网站在线观看视频,山西网站建设免费咨询大家好,我是前端西瓜哥。今天来学习 pixijs 的 Sprite。 Sprite pixijs 的 Sprite 类用于将一些纹理(Texture)渲染到屏幕上。 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);

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

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

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

在这里插入图片描述

一些属性

tint

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

img.tint = 0x00FF00;

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

这在游戏中可以利用绿色的 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 的类,就是前面说的将多个角色的状态放在一起。

优点是:

  1. 加快加载速度:因为多个 sprit 放在一个图片上了;
  2. 提高批渲染效率:pixijs 快的秘诀是使用尽量少的 draw call(CPU 通知 GPU 绘制,比 GPU 绘制还耗时),将多个 sprite 放在一起有助于批渲染。
const atlasData = {// 如何裁剪图片中的内容来生成多个 spriteframes: {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,},// 如果使用动画,动画帧对应的 spritanimations: {enemy: ["enemy1", "enemy2"],},
};// 创建 spritesheet
const 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);

结尾

我是前端西瓜哥,欢迎关注我,学习更多前端知识。

http://www.yayakq.cn/news/112549/

相关文章:

  • 个人网站开发背景怎么写自己做网站上市
  • 大网站制作公司dw网页制作怎么设置背景颜色
  • 网页制作与网站建设宝典(第2版)建立全国统一的突发事件信息系统
  • 做视频网站如何赚钱wordpress注册邮件内容设置
  • 制作平台网站费用网站访问速度 云组机
  • 自己做网站挂广告怎么赚钱wordpress选项卡插件
  • 电子商务大型网站建设手机端网站优化怎么做
  • 山西网站建设找哪家公司网站建设深
  • 网站认证源码美食网站中饮食资讯该怎么做
  • 黔西县住房和城乡建设局网站做网站背景音乐
  • 什么网站可以自己做名片网站跟网页的区别
  • 蛋糕店网站开发策划书营销策略有哪些4种
  • 威海住房和城乡建设局网站首页济南百度seo排名公司
  • 那种自行提取卡密的网站怎么做外贸的整个详细流程
  • 网站排名配色戒烟网页设计作品欣赏
  • 最新企业网站模板网站建设视频 备份 反代
  • 佛山市手机网站建设hao123浏览器下载安装
  • 网络营销公司网络推广专业网站优化外包
  • 空间设计网站大全微信开发者工具官方文档
  • 郑州正规的网站制作价钱手机一键生成户型图
  • 服装网站 欣赏wordpress 如何修改like和dislike
  • 抖音代运营策划案网站seo诊断优化分析该怎么做
  • 山东网站定制设计公司wordpress文章显示
  • 网站怎样做优惠卷网站开发的甘特图
  • 自己做网站广告法为餐饮企业做网站推广
  • 江苏住房与城乡建设厅网站免费商城系统哪个好
  • 哈尔滨铁路局建设网站网页设计代码单词
  • 做网站找谁室内装饰设计公司
  • 灰色调网站wordpress 4.9.1模板
  • 网站不用了 怎么关闭江苏网站优化建站