接续昨天的介绍,再加入一些控制与互动
位置
,这次试着调整 rotation
用来测试的是 火焰效果:
emitter.rotation = 90;
很好,可以转!
emitter实体 的 rotation 单位是
角度
, PixiJS 里的 rotation 是弧度
,单位不同需留意
[Demo1]
步骤1: 使用 Math.atan2 方法,取得 滑鼠 / 手指触控 与画面中心的弧度
步骤2: 将弧度转成角度後 加上90
(emitter 实体的 rotation: 0 为 12点钟
位置)
步骤3: 将火焰效果的 rotation 指定为上述角度
hitArea.on("pointermove", (e) => {
// 取得 滑鼠 / 手指触控 座标
const pointerCoordinate = e.data.getLocalPosition(hitArea);
const xDist = pointerCoordinate.x - app.screen.width * .5;
const yDist = pointerCoordinate.y - app.screen.height * .5;
// 留意使用方式为 Math.atan2(y, x); y 在前
const radian = Math.atan2(yDist, xDist);
// console.log("radian: ", radian, radian * (180 / Math.PI));
emitter.rotation = radian * (180 / Math.PI) + 90;
});
- MDN Math.atan2 使用方法:
回传 (x, y) 与 (0, 0) 的弧度,用法为 Math.atan(y
,x
); // y 在前
其他效果都是火焰效果预设,做起来不太困难又有感觉!
然後就想到了很喜欢的游戏 Overcooked
出处: Overcooked! 2 / Steam 社群 :: Overcooked! 2
刚好截图Gif上用到了三种粒子,都可以用 Pixi Particles 来做!
问题: 将 emitter 逆时钟旋转 90
度,结果为何?
选项1(左): 整个容器旋转,结果为逆时钟转了90
度的喷泉
选项2(右): 重力仍然向下,粒子向下发射
答案: 选项2(右),维持相同重力,粒子向下发射
这样就能直接做很多有趣的事情了!
// 用法:直接指派数值即可
emitter.startSpeed.value = 200;
[ Demo2 ]
因为只有一个 emitter,即使一秒 60FPS
,跑再快也不会 平均落在 360 度 上
[ Demo3 ] - 3个 emitter!有棱有角的感觉好多了
由於 gif 图会有些格数不足的感觉,直接点开 Demo 较准确
今日心得:
Pixi-Particles 能玩的还有很多,也许用法上不会差异太多
效果组合与搭配适合的主题会更有感
<<: Day 29. 手机萤幕截图安全性问题,小心被看光光
让 GitLab CI 的工作流程的流水线加速,透过上一篇的大部分解有了思考流程上的脉络,接下来要开...
Azure 管理资源方式比较差异 首先对 Azure 管理资源的方式有个概念,好方便之後介绍 Azu...
session authentication 的机制是 登入时建立 sessionId 储存 ses...
喵喵酱汇总了常用的15个Excel公式,喜欢的拿走,不懂的问哦,喵喵酱希望帮助更多办公中不懂Exce...
到了铁人赛最後一天,其实自己一开始就从没设想如果完成了铁人赛会有什麽样的心情,只想着就算没梗没题材,...