问题标签 [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 投票
0 回答
317 浏览

ios - 如何使用 CAEmitterLayer 制作血液(或液体)喷雾效果

我正在尝试使用 CAEmitterLayer 制作血液/液体喷雾动画。有谁知道这样做的任何好技巧?或者任何人都可以指出我的任何例子吗?我试图让它在雾中喷出或在液体中流出。我最终将使用自上而下的视角,所以我会让它向外喷射,而不是像受重力影响那样从屏幕上掉下来。

0 投票
2 回答
1212 浏览

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

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

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

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

0 投票
1 回答
310 浏览

ios - 渲染 CAEmitterLayer(不知何故)

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

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

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

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

0 投票
2 回答
1242 浏览

ios - 重复和连续地动画视图

我正在模拟一些效果,例如落叶、下雪和下雨。我的第一个调用是使用 CAEmitterLayer,效果很好,但我需要在上下文中渲染图层以保存为图像,这看起来不可能,或者至少非常复杂。

所以我正在处理一些视图动画。我需要不断地为我的 imageViews 设置动画,以便它可以穿过屏幕并重新出现在它上面,每个都具有不同的速度。

所以我在屏幕上重新定位每个imageView animateWithDuration,当动画完成时,我调用从完成块递归执行该操作的方法,以便imageview可以到达屏幕末尾。一旦 imageView 到达屏幕末尾,我将其重新定位在顶部。

问题是当动画结束时,我的 imageView 会停止一点,直到完成块递归地调用该方法,我希望它是连续的。

我的代码为每个 imageView 生成随机位置,并且我的动画持续时间很短,所以我可以随时更新 imageView 的位置,以防用户点击按钮将视图保存为图像。

无论如何,这是我的代码:

当从完成块递归调用该方法并且动画重新启动时,我怎样才能重复和连续地制作这个动画,而没有间隙?

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 回答
81 浏览

ios - 如何从 Canvas 获取 CAEmitterLayer

我正在尝试在此处遵循有关 iOS 粒子系统的教程:http ://www.raywenderlich.com/6063/uikit-particle-systems-in-ios-5-tutorial

我无法将self.canvas.layerC4Workspace.m 中的内容转换为CAEmitterLayer. 代码编译得很好,但在运行时失败。

我试过这个:

但我每次都收到这个错误。

看来我没有正确地投射或暴露方法。我该怎么做?

0 投票
1 回答
897 浏览

ios - ios -- 如何限制 CAEmitter 粒子轨迹的范围?

我成功地将 CAEmitter 添加到子视图内的 UIView 中,但该层发射的粒子延伸到该视图之外。请参阅下面的代码以获取 cookiecutter 代码和参数。我的问题是如何防止生成的粒子退出父视图?

我试过用某个框架初始化子视图,甚至调整边界的大小。在这两种情况下,发射的粒子都在边界内开始,但在视图框架之外飞行,似乎没有边界。在我限制生命周期之前,它们不会消失,或者直到它们到达屏幕的尽头。有没有办法防止发射器与视图外的对象交互?

0 投票
1 回答
693 浏览

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

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

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

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

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