问题标签 [caemitterlayer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
78 浏览

ios - 使用 KVC 设置 CAEmitterLayer 属性

我正在尝试动态更改 CAEmitterLayer 实例的属性。我正在调用 setValue:forKey: 像这样:[self.mainViewController.mainView.spaceView.emitterLayer setValue:[NSNumber numberWithFloat:0] forKey:@"emitterCells.particle.velocityRange"]; 但我没有看到粒子发射器有任何变化。如果我通过硬编码将该属性设置为 0,则不会发射任何粒子。 是一个包含实现粒子系统的 UIView 的 gist 文件的链接。我知道 KVC 可能会因为错过打字而变得棘手,所以也许我只是忽略了一些明显的东西?

0 投票
1 回答
1572 浏览

android - Android 上是否有任何类型的粒子发射器,例如用于圆形发射器的 iOS CAEmitterLayer?

我的问题目前很难解决。

我应该和我的同事一起开发一个 Android 应用程序,它做同样的事情,但在 iOS 上。

在开发结束时,我们应该交付两个执行相同操作且看起来相似的应用程序(请放心,与强制在 Android 上使用的 iOS 指南线完全不同,反之亦然),以便获得相同且身临其境的体验。

提供的最重要的功能之一是一个漂亮的白色空圆圈动画,它在圆圈内发出雪状粒子。圆圈可以通过滚动或简单的弹跳/滑动动画来移动。

因此,想象一个带有白色边框和白色颗粒从白色薄膜上脱落的圆圈。所有这些粒子都被吸引到中心,并且它们的速度基础正在变化(但没有加速!)。最快的粒子应该在到达中心之前“死亡”。当然,可以通过设置寿命和速度轻松设置的东西。

我的伙伴,和我一样大三,正在使用iOS 的 CAEmitterLayer,她在一两天内获得的结果非常好,非常接近我们应该达到的效果。

在我这边,我真的很挣扎。和她一样,我在任何动画和 UI/UX 方面都没有任何经验。在 Android 上寻找粒子生成器/发射器时,我偶然发现了这个漂亮的库:https ://github.com/plattysoft/Leonids ,它似乎可以提供我正在寻找的东西。

但是使用这个库我有一些未解决的问题:

  1. 我不能或不知道我是否可以将发射器放在一个圆圈内;
  2. 我相信,如果发射器所连接的圆圈正在移动(滚动/动画),那么粒子很可能不会随圆圈移动;

正如我所说,我的 iOS 同事解决了这些问题。即使是移动部分:我们正在与我们的经理交谈,告诉使用“如果圆圈移动怎么办?” 她立即​​在我们面前尝试了它。我被吹走了...

她告诉我我应该寻找一种方法将我的粒子包含在一个容器中(有道理^^)并且我的圆形视图应该用图层剪辑,这样粒子就不会离开圆圈,尤其是在整个物体移动的情况下.

多亏了前面提到的 Android 库,这就是我所取得的成就:

  1. 我可以发射粒子,定义它们的形状、尺度/大小、速度和发射角度;
  2. 我可以将粒子发射器连接到视图。它将使用视图X&Y 坐标来发射粒子,但是像这里这样的基于 XML 的可绘制圆的问题在于它包含在基于正方形的视图中(带有 a和 a ),并且出于奇怪的原因,我的圆在上面绘制说基于平方的观点。heightwidth

我希望我能找到另一个图书馆,但如果当前的图书馆正在工作,为什么不呢?只是在外面试试我的运气^^

谢谢您的帮助 !

0 投票
1 回答
142 浏览

ios - iOS 粒子系统控制

我试图了解 iOS 中的任何粒子系统(Sprite Kit 或 CAEmitterLayer)是否适合我的任务。

问题:有没有办法控制发射器何时创建粒子?特别是,告诉发射器何时发射以及何时停止发射。

理由:基本上我想用粒子制作音乐均衡器(可视化器?)效果。我想为每个频率设置一个发射器,并让它产生形状/速度不同的粒子,具体取决于该频率在该时间点的信号强度。

请让我知道这是否可以使用粒子,如果不能,那么如何有效地做到这一点(图层?视图?)。OpenGL 级别太低。

0 投票
1 回答
102 浏览

ios - 在 GPUImageVideoCamera 上添加 CAEmitterLayer 时如何解决掉帧问题

当我们使用 GPUImage 实现广播应用程序时,我们遇到了性能问题。当我尝试在相机视图顶部添加 CAEmitterLayer 以实现图像显示的效果时,相机开始丢帧。

在此处输入图像描述

我们的应用程序所做的是同时在本地广播和录制。我怎样才能找到原因,还有什么解决方案可以解决这个性能问题?

0 投票
1 回答
77 浏览

ios - 旋转设备时保持 CAEmitter 居中

旋转设备时,有没有办法让 CAEmitter 以 UIView 为中心(使用 Autolayout)?

我将我的发射器添加到 viewDidLoad 中,如下所示:

我试图删除它并重新添加它,但它没有居中....

0 投票
0 回答
416 浏览

macos - 具有图层支持的 NSView 的透明 NSWindow

我调整了 Apple 的RoundTransparentWindow示例项目来创建一个NSWindow透明NSView窗口(显然它的子项NSView是可见的,而不是窗口或视图的背景)。

我想CAEmitterLayer在这个窗口中添加一个粒子效果,但是一旦我将视图设置为支持图层(这似乎是一个要求CAEmitterLayer

视图失去了透明度并变得不透明。

我怎样才能有一个透明的、有层支持的NSWindow?或者,是否可以CAEmitterLayer在透明窗口上以其他方式使用?

0 投票
1 回答
1174 浏览

ios - iOS 使用 CAEmitterLayer 创建落叶动画

我想创建一个落叶动画这是我的代码:

我从上面的代码中得到:

绘制我想要实现的目标:

那么如何更新我的代码以实现我想要的(Objective-C 代码被接受)?

0 投票
2 回答
1117 浏览

ios - 如果为它设置了 beginTime,CAEmitterLayer 不会添加基本动画

我正在尝试使用CAEmitterLayer和几个CAEmitterCell. 这应该在用户看到视图后的短暂延迟后发生。我开始我的动画viewDidAppear

粒子动画本身可以正常工作,但正如在这个问题中,CAEmitterLayer 的初始粒子不会从emitterPosition 开始,除非我将emitterLayer.beginTime = CACurrentMediaTime()动画设置为已经运行了一段时间的用户。

现在要真正实现爆炸,我必须在某个时候停止发射粒子。我尝试使用此代码来设置CABasicAnimation一段时间后会停止发射器:

所以现在这个代码birthRateAnimation实际上并没有被触发。我已经登录animationDidStop并且animationDidStart不打印任何内容。

现在,如果我explode在按钮点击时调用函数,我根本看不到粒子动画,但在日志中我看到“动画开始”/“动画停止”消息。

知道为什么吗?

0 投票
2 回答
1000 浏览

ios - CAEmitterCell 颜色属性不起作用

我对 CAEmitterCell 颜色属性有一些奇怪的行为,或者我不理解它。

我有一个细胞

带有简单的 .png 文件的内容,该文件被绘制为黑色

我试着把它改成绿色

但它仍然呈现黑色。我试图在媒体资产中将此图像的“渲染为”属性更改为“模板 imagr”,但没有效果。

谁能帮我理解我做错了什么?

0 投票
4 回答
652 浏览

ios - 如何设置 CAEmitterLayer 背景透明?

在这里,CAEmitterLayer 覆盖了我的视图...... self.view 的内容不可见..

参考。代码:https ://oktapodi.github.io/2017/05/08/particle-effects-in-swift-using-caemitterlayer.html

我想在我的视图上设置这个动画。