问题标签 [caemittercell]

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 投票
2 回答
1212 浏览

ios - 发射开始后更改 CAEmitterLayer 的 CAEmitterCell 属性

当我第一次设置发射器时,我可以这样做:

但是假设我创建了一个 5 秒后触发的计时器,我这样做:

计时器触发,但 CAEmitterCell 的 yAcceleration 没有改变。或者至少屏幕上的粒子发射没有任何变化。如何让 CAEmitterCell 尊重我对其属性所做的更改?

0 投票
1 回答
310 浏览

ios - 渲染 CAEmitterLayer(不知何故)

我真的需要将 CAEmitterLayer 捕获为要在我的上下文中渲染的图像。我知道 renderInContext 方法不支持 CAEmitterLayer,我发现了很多关于它的问题,但没有好的答案。

我能够通过使用新的 iOS7 方法 drawViewHierarchyInRect 来实现我的目标,它工作得很好,但我的应用程序也需要在 iOS6 上运行。

有什么办法可以做到吗?我可以以编程方式截取屏幕截图,就像我在设备上按主页按钮 + 电源按钮时那样?

任何帮助都会很有用,我对此束手无策。

0 投票
1 回答
195 浏览

c# - 将 CAEmitterCell 添加到另一个 CAEmitterCell

我正在尝试做一个粒子效果,我将一个单元格嵌套到另一个单元格上。想想他们在Apple Docs中的基本烟花示例。他们将 Cell 嵌套到其他 Cell 中,并使用 BeginTime 参数对它们进行计时。但是,我的 CAEmittorCell 没有像他们那样的“beginTime”参数,而是在 CAEmittorLayer 中有一个参数......如果单元格没有,我应该如何嵌套单元格并让它们在不同的时间执行开始时间参数?

请注意,在苹果示例代码中,CAEmitterCell 有一个“beginTime”参数

----已解决,请参阅下面的回复----

我只是像这样手动调用选择器以获得所需的结果:

0 投票
0 回答
144 浏览

c# - iOS 6 EmitterCells 出生率无法正常工作

关于 iOS 6 中的 CAEmitterCell,我发现了一些非常奇怪的行为。 请注意,这些问题仅在运行 iOS 6 时存在。还要注意,我指的是其他单元格的子单元格。 我已经在设备和模拟器上测试了 iOS 6 和 iOS 7。

  • 在下面链接的极其简单的项目中,如果我的对象少于 70 个(birthRate < 70),则根本不会创建任何对象!因此,如果您将其设置为 50,您会期望创建 50...但未创建
  • 从其他 CAEmitterCell 生成的子 Cell 的 BirthRate 不准确。当我将其设置为 70 时,它会创建大约 7 个...
  • BeginTime 的功能非常奇怪。假设我的父单元格的 LifeTime 为 1.6。如果我将 It's child cell 的 beginTime 设置为 1.5,它可以正常工作。但是,如果我将子单元格的 beginTime 设置为 1.4(这也应该可以正常工作),则根本不会产生任何单元格......任何小于它的父级 LifeTime 的东西都应该工作,对吗?

这是一个演示问题的视频

这是我用来演示这些错误/问题的 Xamarin.iOS C# 项目的 Dropbox 链接:

0 投票
1 回答
822 浏览

ios - 沿路径留下准确轨迹的 CAEmitterLayer 动画

我需要用 CAKeyframeAnimation 动画的 UIView 留下痕迹

现在 Ball.m 将具有以下发射器层:

我只需要球留下一条重复球行进路径的轨迹。我该如何做到这一点?

0 投票
1 回答
693 浏览

ios - 根据动画方向旋转 CAEmitterCell 内容

使用 CAEmitterLayer 和 Cell 显示具有方向敏感内容图像的粒子(箭头)。

希望内容(箭头图像)指向单元格移动的方向。

这是让所有箭头从外边缘向中心移动的代码。如何旋转图像以使图像指向运动方向:

如何根据单元格移动的方向调整内容图像?

0 投票
0 回答
325 浏览

ios - 粒子发射器可以在一个应用程序中工作,但不能在另一个应用程序中工作

我在粒子效果方面遇到了一些困难。最初我发布了一个关于我的应用程序中的粒子效果在 ios6 设备上有何不同的问题。

粒子系统在 iOS 6 和 ios7 上看起来不同

我最初在 ios7 设备上设计了该应用程序,并得到了我想要的粒子,但在 ios6 设备上,粒子更小并且移位了。

有人告诉我这是 ios6 和 ios7 之间的问题,改变媒体时间可以解决它。

我已经尝试了一切,但没有任何效果。

最终,我尝试创建一个单独的应用程序并粘贴本教程中的代码 - http://weblog.invasivecode.com/post/45058779586/caemitterlayer-and-the-ios-particle-system-lets视图中确实加载了。粒子按应有的方式工作,但是当我将相同的代码放入当前的应用程序 viewDidLoad 时。粒子到处都是,没有做他们应该做的事。

如果我当前的应用程序中缺少某些东西,我会徘徊,那就是扰乱粒子。任何人都可以建议要寻找的东西吗?

最初,粒子效果被子类化并在向我的主视图添加子视图后被调用。

这是我的视图控制器 .h 代码(我取出了一些不相关的控制对象属性和插座)

这是我的 viewcontroller .m 中的代码,我在其中添加了教程中的代码。

这是我在 ios7 iPad 上运行的粒子效果之一,但在 ios6 iPad 上,效果看起来完全不同。

经过很长时间试图弄清楚为什么 ios7 和 ios6 看起来不同,我尝试将教程代码放入新应用程序中,然后将其放入我自己的应用程序中。在我的应用程序中,粒子完全不同,但它们应该在新应用程序中。

关于@matt 下面的评论。我知道我的应用程序一定有问题,但我看不到。我浏览了整个网络并浏览了我的代码,但我认为我遗漏了一些东西。

我想要的只是出现在特定位置的三个粒子效果,无论 iOS 版本如何。其中之一是用户触摸。下面的效果只是其中之一。我已经尝试过 CAmediaTiming 的东西,但没有奏效。

SteamEffect.h

steamEffect.m 看起来像这样。

我使用以下方法从我的 viewcontroller .m 中调用了上述内容。在上面的 viewDidLoad 中还有一个计时器,它每 5 秒调用一次。虽然这可能不是这样做的方法。可能更好地添加视图并开始它每 5 秒发射一次,而不是每次都添加一个新视图,但这是一个不同的问题。

0 投票
1 回答
1886 浏览

ios - 使用 Core Animation 淡出发射器单元

我正在使用 CAEmitterLayer 和 CAEmitterCell 实例创建粒子动画。动画没有问题,但我希望它们慢慢淡出。我正在使用下面的代码,但是粒子突然消失了,那里没有淡出动画。

此代码在五个不同的发射器单元的 for 循环中运行。

您发现此代码中有错误吗?

谢谢

0 投票
0 回答
115 浏览

ios - CAEmitterCell 可以有基于矢量的内容吗?

我想为系统中的粒子使用 CALayers 或其他基于矢量的绘图。我需要在没有像素化的情况下放大。

我想做这样的事情

0 投票
1 回答
218 浏览

objective-c - 多个 CAEmitterLayer 源

我想从多个点生成不同的 CAEmitterCells。到目前为止,我的解决方案是创建多个 CAEmitterLayers,每个都有一个单元格,以便我可以单独控制它们。这种方法的问题是将图层渲染模式设置为 kCAEmitterLayerAdditive 仅在每个图层内有效,因此当从不同图层发射的粒子重叠时,它们不会混合,使得问题非常明显。