首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Pixi js两次旋转到一个元素(如何添加类似包装器的东西)

Pixi.js是一款轻量级的2D WebGL渲染引擎,它允许开发人员创建高性能的交互式图形和动画。在Pixi.js中,我们可以使用Transform对象对元素进行旋转、缩放和移动等变换操作。

要实现两次旋转到一个元素,并添加类似包装器的效果,我们可以按照以下步骤进行:

  1. 创建Pixi应用程序:首先,我们需要创建一个Pixi.js应用程序,用于渲染和显示我们的元素。可以使用Pixi.js提供的Application类来创建应用程序对象。
  2. 创建元素对象:使用Pixi.js提供的Sprite类创建一个元素对象,可以使用一张图片或者绘制一个图形作为元素的外观。
  3. 设置元素初始位置和旋转角度:使用元素对象的position属性设置元素的初始位置,使用rotation属性设置元素的初始旋转角度。
  4. 创建包装器对象:创建一个空的Pixi容器对象作为包装器,可以使用Container类来创建容器对象。
  5. 添加元素到包装器:将元素对象添加到包装器对象中,使用addChild方法将元素对象作为参数传递给包装器对象的addChild方法。
  6. 旋转包装器对象:使用包装器对象的rotation属性设置包装器对象的旋转角度,实现第一次旋转效果。
  7. 创建第二次旋转的包装器对象:创建另一个空的Pixi容器对象作为第二次旋转的包装器,重复步骤4和步骤5。
  8. 将第一次旋转的包装器对象添加到第二次旋转的包装器对象中。
  9. 旋转第二次旋转的包装器对象:使用第二次旋转的包装器对象的rotation属性设置其旋转角度,实现第二次旋转效果。
  10. 添加包装器对象到Pixi场景中:将第二次旋转的包装器对象添加到Pixi应用程序的场景中,使用stage.addChild方法将包装器对象作为参数传递给应用程序的场景对象的addChild方法。

完整的Pixi.js代码示例如下:

代码语言:txt
复制
// 创建Pixi应用程序
const app = new PIXI.Application();

// 创建元素对象
const element = new PIXI.Sprite.from('element.png');

// 设置元素初始位置和旋转角度
element.position.set(100, 100);
element.rotation = Math.PI / 4; // 45度

// 创建包装器对象
const wrapper = new PIXI.Container();

// 添加元素到包装器
wrapper.addChild(element);

// 旋转包装器对象
wrapper.rotation = Math.PI / 3; // 60度

// 创建第二次旋转的包装器对象
const secondWrapper = new PIXI.Container();

// 添加第一次旋转的包装器到第二次旋转的包装器
secondWrapper.addChild(wrapper);

// 旋转第二次旋转的包装器对象
secondWrapper.rotation = Math.PI / 6; // 30度

// 添加第二次旋转的包装器到Pixi场景中
app.stage.addChild(secondWrapper);

// 渲染Pixi应用程序
document.body.appendChild(app.view);

这样,就可以实现一个元素经过两次旋转后的效果,并使用Pixi.js进行渲染和显示。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

眨个眼就学会了Pixi.js

环境搭建 本文将使用原生三件套方式讲解如何使用 Pixi.js,你可以根据自己需求搭建环境。...起步 首先要做是使用 Pixi.js 创建一个画布,并将该画布添加到页面中。...('d1') // 将画布添加到d1元素里 d1.appendChild(app.view) 设置画布宽高 Pixi.js 默认创建出来画布宽高是 800px * 600px...这也是我认为入门阶段最重要内容。 先从最简单图形说起,清楚 Pixi.js 可以创建哪些图形后,后面的章节再讲解如何设置样式。 在 Pixi.js 创建图形需要用到 Graphics 类。...Pixi.js一个强大2D渲染引擎,可以用于创建各种类型动画。 Pixi.js 提供了一个处理循环对象 ticker,它是 Pixi.js 核心组件之一。

7K10
  • 学习 PixiJS — 视觉效果

    这是一个如何创建 BlurFilter (模糊滤镜)示例(其他滤镜遵循相同格式): //创建一个模糊滤镜 let blurFilter = new PIXI.filters.BlurFilter()...要向精灵添加滤镜,先创建滤镜,然后将其添加到精灵滤镜数组中。你可以根据需要添加任意数量滤镜。...padding 增加了滤镜区域周围空间。uniforms 是一个可用于向 WebGL 渲染发送额外值对象。在日常使用中,你永远不必担心设置 uniforms 属性。...总结 本文主要聊了聊平铺精灵、着色、蒙版、混合模式、滤镜、视频纹理、适配多种分辨率、绳(Rope),相关东西。...还有就是因为 PixiJS API 时常有变化,所以要注意 PixiJS 版本,文中大部分示例用版本是4.8.2 https://github.com/pixijs/pixi.js/releases

    3.3K40

    【H5游戏】 pixijs 需求级入门

    东西快快学快快记,大知识按计划学,不拖延 最近我们有几个H5小游戏需求,一个是人物换装,一个是红包雨,我们都是用pixijs来做 本来主要目的是写人物换装这个H5游戏具体实现,但是基础是要会用pixi...,需要了解基本api 所以另起一文从需求使用角度介绍下pixi,记录下使用 pixi 踩得坑,保证能用pixi完成一个东西 本文目录 1、pixi简介 2、简单说明 3、api介绍 本文基于 pixi...3、数据可视化 1比较竞品 除此之外还有几个游戏渲染引擎,比如常用three.js,cocos2d,createjs,playcanvas 等 选择一个框架,通常要考虑,开发便利性(是否支持...app.stage.addChild(sp1,sp2) 修改 精灵都是直接修改属性就ok了,pixi 会完成动态更新,类似于Vue 修改属性 比如修改图片,直接替换缓存资源 sprite.texture...游戏是会创建很多元素,我们不可能创建一个添加一个进根容器 这样元素关系就十分混乱不利于管理 所以会把元素分组,也就是创建一个新容器存放一类元素精灵 比如一个人物,通常就需要创建多个元素,头部,身部

    2.9K21

    HTML5游戏引擎深度测评

    所以当你看到Pixi.js提供了为数不多功能时,请不要惊讶,因为它只是一款渲染。 设计理念 Pixi.js设计理念很多程度来源于它定位,只做渲染,要把渲染功能做到最强。...Pixi.js Pixi.js作为一个渲染,其工具支持也是相当清爽,除了一个程序库之外,没有提供任何工具。...Phaser Phaser和Pixi.js一样,没有提供任何工具支持,在其官网上只是推荐了两个代码编辑。还提供了一个简单在线代码编辑。 ?...PlayCanvas PlayCanvas也提供了一个在线编辑,不过是针对它3D功能。编辑看上去和Three.js提供在线编辑份很相似。这里直接借用官方文档中截图给大家看一下。...Pixi.js:作为渲染,其渲染性能绝对是非常优秀,游戏功能方面支持很差,适合极客程序员把玩。

    8K91

    汇总了几个前端离不开2D图形库

    它提供了一个强大API,使得开发者可以轻松地在Canvas上添加图形、文本、形状、图像、动画等元素,并且可以与这些元素进行交互 https://github.com/konvajs/konva fabric.js...https://github.com/fabricjs/fabric.js pixi.js Pixi.js一个基于WebGL和Canvas2D渲染引擎,它提供了一种简单、快速方式来创建交互式图形、...Pixi.js支持多种渲染,包括WebGL、Canvas和SVG,可以根据不同场景选择最适合渲染。它还提供了很多实用功能,例如精灵、文本、遮罩、滤镜、动画等,可以帮助开发者轻松创建各种效果。...Pixi.jsAPI简单易用,文档详细,社区活跃,拥有大量插件和扩展,可以满足各种需求。Pixi.js除了适用于游戏开发,还可以用于数据可视化、UI设计、广告制作等领域。...它大小仅仅只有 42 KB,是一个用于创建交互式地图开源JavaScript库。它提供了易于使用API,可以轻松地在网页上添加地图、图层、标记、组件和交互元素,并支持各种地图提供商和数据源。

    1.2K20

    【H5游戏】红包雨 实现详解

    之前总结了一个pixi 实现的人物换装游戏,没看过可以看 PIXI 实现人物换装 今天继续总结用 pixi 实现一个 红包雨 H5 游戏,可以来体验下 相信大家对这个游戏应该不陌生了,支付宝 QQ...1、游戏简介 2、游戏实现 3、代码仓库 游戏简介 游戏玩法很简单,去体验下就知道了 红包雨使用游戏引擎依然是pixi,还不懂PIXI可以看 PIXI 需求级入门 另外我们还使用了一个动画库来让属性变化动画更加丝滑...,比如坐标位置移动变化,透明度变化,他就是 gsap gsap 介绍他是 1、高性能js 动画工具库 2、超强浏览兼容 3、支持多种实现方式(React、Vue、css、canvas,svg) 4...,观察这个动画,一个是从上至下坠落动画,一个是左右摇晃动画,毕竟是模拟雨嘛,并不是直上直下 这里就用了前面说动画库 gasp,控制动画是 红包元素 y 坐标 和 x 坐标 变化 先看最基础坠落动画...,销毁 pixi 容器 this.destroy() }); } } 倒计时结束收尾动作,主要是 1、销毁红包生成定时 2、销毁所有 pixi 元素 3、销毁 pixi 容器

    2.8K40

    HTML5 游戏引擎深度测评

    所以当你看到Pixi.js提供了为数不多功能时,请不要惊讶,因为它只是一款渲染。 设计理念 Pixi.js设计理念很多程度来源于它定位,只做渲染,要把渲染功能做到最强。...Pixi.js Pixi.js作为一个渲染,其工具支持也是相当清爽,除了一个程序库之外,没有提供任何工具。...Phaser Phaser和Pixi.js一样,没有提供任何工具支持,在其官网上只是推荐了两个代码编辑。还提供了一个简单在线代码编辑。 ?...PlayCanvas PlayCanvas也提供了一个在线编辑,不过是针对它3D功能。编辑看上去和Three.js提供在线编辑份很相似。这里直接借用官方文档中截图给大家看一下。 ?...Pixi.js:作为渲染,其渲染性能绝对是非常优秀,游戏功能方面支持很差,适合极客程序员把玩。

    6.1K132

    Phaser 桌面和手机游戏HTML5框架

    Phaser是一个流行2D开源游戏框架,可以用来开发桌面或手机浏览HTML5游戏,适合侧视或顶视风格: ?...Phaser同时支持Canvas和WebGL渲染引擎,预置了完备精灵动画、输入 管理、瓦片地图、补间动画、资源加载、物理系统、粒子系统等特性,几乎能够 满足你开发一个2D游戏任何需求: ?...Phaser框架绝大部分功能,都打包在单一phaser.js文件中。...: 让框架自动选择渲染 Phaser.CANVAS:使用PixiCanvas渲染 Phaser.WEBGL:使用PixiWebGL渲染 Phaser.WEBGL_MULTI:使用PixiWebGL...使用PixiCanvas渲染,但不把canvas元素 添加到DOM中,也不进行实际渲染 √ 指定游戏画布父元素 默认情况下,Phaser会将创建canvas元素插入到文档body元素尾部。

    4K20

    骨骼动画初体验

    Pixi.js 依赖于canvasWebGL渲染,官网中他对自己定位就是渲染“引擎”,提供 API 功能支持上, 不如 Phaser 等丰富,但是他在渲染部分做很出众。...引擎是为框架而服务 PIXI 简单介绍 PIXI 主打支持硬件 GPU 渲染 WebGL API,依赖他你可在不了解 WebGL API 或者处理浏览兼容就可以创建丰富交互式图形跨平台应用渲染...renderer = new PIXI.WebGLRenderer(256, 256); PIXI 简单示例 // 创建canvas元素 const app = new PIXI.Application...示例代码 PIXI 渲染压力测试结果 同样环境条件下,对5千张,1万,2万张图片进行循环渲染,进行帧率数据比较;如图可见,PIXI 作为渲染表现是很优秀。...引入 JSON 文件,pixi-spine 会读取文件之后转化为 js 对象等待被调用,因此对可按需再加载部分进行拆分,有利于减少js工作量及占用内存,也能提高访问初始速度 独立到 DOM: 不管是用

    1.3K40

    HTML5骨骼动画Demo | 使用min2d、createjs、pixi播放spine动画

    整理了一下,找了一些比较好方法,分享一下。 createjs 这是HTML5动画引擎比较好用,也比较小一个,如果项目纯碎为了播放骨骼动画,而不是一个游戏,强烈推荐用这个。...这不是一个出名流行动画库或者游戏引擎。。。暂时没有人认识这货。...引入min2d.min.js 引入spine.js 引入spine-min2d插件 新建min2d.Spine,添加到舞台,增加动作,即可播放 var stage = this.stage = new...可以理解为,只支持最简单零件式spine动画,不支持spine蒙皮骨骼动画。 PIXI 这个也是一个流行2d动画/游戏引擎,体积不算太大,功能还算齐全,支持canvas2d和webgl。...使用步骤: 引入pixipixi-spine load json new PIXI.spine.Spine state.addAnimationByName播放动画 逐帧重绘(pixi没有提供现成定时

    5.7K51

    H5游戏开发:游戏引擎入门推荐

    毕竟网络上游戏引擎良莠不齐,官网上相关资料也比较少,而选择一个适合游戏引擎是一个项目最基础,也是很核心一部分。...为了避免这种情况出现,在前期选择适合项目需求游戏引擎显得尤为重要。 接下来我们来聊一聊如何去选择适合项目的 JS 游戏引擎。...下图是主要支持2D游戏游戏引擎 ? Pixi.js 一般来说,WebGL 渲染速度都会比 Canvas 快,这是由俩者绘制路径决定。...Hilo Hilo 是阿里团队推出一个开源项目,支持模块化开发,同时提供了多种模块范式包装版本和跨终端解决方案,适合用来开发营销小游戏。其体积也是比较轻量,只有70kb左右。...Three.js 官方案例 相信对于很多有关注 3D 游戏开发者来说,Three.js 早已经耳熟能详了。实际上,Three.js 官方定位并不是游戏引擎,而是一个 JS 3D 库。

    6.5K20

    JavaScript 设计模式学习第十五篇-外观模式

    翼无人机种类也很多,四翼、六翼、八翼、十六翼甚至是共轴双桨旋翼机,他们因为结构不同而各自有一套原理类似,但实现细节不同翼控制方式。...如果用户需要把每种控制原理弄清楚,那么门槛就太高了,所以无人机厂商会把具体翼控制细节封装起来,用户所要接触只是手上遥控,无论什么类型无人机,遥控控制方式都一样,前后左右上下和左转右转...在类似场景中,这些例子有以下特点: 1. 一个统一外观为复杂子系统提供一个简单高层功能接口; 2....jQuery 源码是如何进行事件绑定。...Vue 源码中函数参数重载 Vue 提供一个创建元素方法 createElement 就使用了函数参数重载,使得使用者在使用这个参数时候很灵活: export function createElement

    48910

    纹理打包 TexturePacker

    (俺也一样) 简单说TexturePacker功能就是将多张图片整合成一张大图工具,并且生成一个图片元素相应位置和大小json文件。...TexturePacker简单使用 因为我是为了pixi.js来使用,所以直接看PixiJs教程就可以啦。 官网上教程是英文,但是其实比较简洁,大家翻译工具翻译一下也不会有什么出错。...在右侧输出文件选项中,可以选择你需要配置,我使用pixi.js。当然其他像unity这些软件配置也都有。输出文件格式是json格式。之后点击发布精灵表即可。...你只需要知道sprite精灵帧id(frame id),然后在pixi.js使用过程中,根据帧id调用这些精灵来进行布局即可。 又一次新工具和知识get了!...结束结束,纹理打包TexturePacker简单使用就是这样,如果想要彻底学习,还是官网吧,虽然是英文︿( ̄︶ ̄)︿

    1.8K00

    你知道几种前端动画实现方式?

    通过增加OpenGL ES 2.0一个JavaScript绑定,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览里更流畅地展示3D场景和模型了...2、兼容性 (1) webGL (2) canvas 一般情况下如果浏览不支持WebGL,就需要降级到Canvas去处理。 如何检测WebGL是否支持?...2、2D、3D游戏引擎 (1) Three.js Three.js 官方定位并不是游戏引擎,而是一个 JS 3D 库。...(2)Pixi.js 一般来说,WebGL 渲染速度都会比 Canvas 快,这是由俩者绘制路径决定。...(5) Hilo Hilo 是阿里团队推出一个开源项目,包括Hilo.js(2D)和Hilo3D 支持模块化开发,同时提供了多种模块范式包装版本和跨终端解决方案,Hilo.js适合用来开发营销小游戏

    3.8K20

    游戏渲染优化

    Pixi 渲染机制 Phaser 内部使用Pixi v2 一个自定义版本用于渲染。...Pixi 上传了显示对象顶点信息后会继续向下找寻对象,如果下一个显示对象使用是同一个 BaseTexure 那么完事大吉,因为这样就不会去绑定一个 texture 了,Pixi 会将这个精灵信息加到当前这个批次中...这个批次中填满了 2000 个元素。 在这两种情况下,这个批次就会被冲刷(flush)。...A9 GPU iPhone 6S最大支持 4096 像素 x 4096 像素,至于 PC 上 GPU 则能支持更大。如果超过了这个大小限制,多数浏览不会显示任何任何东西。...我们对于这个场景优化,也就到达了终点 多余两次 draw call 我们可以看到,即使我们场景是一次就绘制好了,依然调用了 3 次 draw call,这是因为 Phaser 内部 2 次调用。

    1.2K30

    H5游戏开发指南

    元素就是游戏显示对象,顾名思义就是能够在舞台上显示对象,也就是我们在游戏中所能看到东西,我们只有了解了这些显示对象,才能做出一个好游戏。 ?...文字(Text): 我们可以通过文本对象,显示浏览默认字体和你通过css加载字体,它是对canvas文本一个包装。...图形(Graphics): 图形对象是对canvas绘图一个包装,简便快捷绘制出多边形。 图像(Image): 图像是一个轻量级对象,你可以使用它来显示任何不需要物理引擎或者动画任务东西。...Phaser就内置了三种物理引擎arcade、ninja、P2(pixi 2d)。P2在这里要单独提一下,P2作为一个JS2D渲染,它目标是提供一个快速、轻量级而且是兼任所有设备2D库。...对于支持webgl浏览,P2将使用webgl绘图,不支持webgl浏览就降级至canvas,Pixi渲染可以使开发者享受到硬件加速,但并不需要了解WebGL。

    4.4K112

    深入浅出 React 18 中严格模式

    "use strict"; x = 3.1415; 上面的例子会抛出一个错误,因为 x 没有定义。注意在文件顶部添加 "use strict" 是如何确保这一点。...类似地,React 中严格模式是一个只针对开发工具,它在编写 React 代码时强制执行更严格警告和检查。...,包括: 包装组件不能确定它子组件是否已经有一个引用。...如果你使用是 create-react-app,那么整个应用程序都会默认使用严格模式。在类组件中使用这些 hook 或状态更新函数时,甚至会看到控制台消息被记录两次。...所有这些日志现在都在任何函数、hook 等双重调用期间被调用两次。 6. 遗留 context API 警告 与 ref API 类似,我们也有一个 context API。

    2.3K20

    数据结构(7)-- Splay tree(伸展树)

    每次对伸展树进行操作后,它均会通过旋转方法把被访问节点旋转到树根位置。...---- 更进一步:展开 展开思路类似于前面介绍旋转想法,不过在旋转如何实施上我们稍微有一点选择余地。我们仍然从底部向上沿着访问路径旋转。...情况二:一字型(zig-zig) 也就是AVL树里那俩只需要单。 注意甄别这次旋转和之前旋转不同,更要看清楚和标准AVL单差别。 这一次一字型旋转,其中包含了两次AVL单。...首先,对P做一次单 然后,对X做一次单 示例 来看个栗子,还是上面那个,k1 展开第一步是在k1,显然是一个之字型,因此我们用k1,k2,k3执行一次标准AVL双旋转,得到如下树:...重新最成了一所查找节点为根树。 我一直没看懂示例 下面是一个查找节点19例子: 在例子中,树中并没有节点19,最后,距离节点最近节点18被旋转到了根作为新根。

    89620
    领券