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

ios - CAEmitterLayer 未显示

我只是添加一个UIView到 mystoryboard view controller然后创建一个UIView类来显示粒子效果。我将UIView's类名更改为我创建的自定义类的名称。我在课堂上使用的代码UIView没有显示我期望的粒子效果。代码如下:

0 投票
2 回答
1105 浏览

ios - 如何删除 CAEmitterLayer?

我正在使用 CAEmitterLayer(如本例中)在 iOS 中使用粒子系统,但我无法在需要时移除粒子。

我正在尝试以下代码,但它不起作用:

有什么建议么?谢谢!

0 投票
1 回答
605 浏览

ios - CAEmitterCell 访问所有粒子

我有一个 CAEmitterCell 工作,但我希望粒子减速并停止。似乎如果我可以访问所有粒子,那么我可以将它们的速度和/或加速度降低到 0,它们就会停止移动。

我试过这样的事情:

但这不起作用,因为我的 layerEmitter 只有一个emitterCell,我不需要emitterCell,而是它已经创建的粒子。

我在文档中没有看到这一点,这让我相信我有一个概念问题。我很感激任何帮助。

0 投票
2 回答
2036 浏览

ios - CAEmitterCell 不尊重birthRate 的变化

我想创建一个仅在用户触摸屏幕时发射的粒子效果,但是一旦将 CAEmitterCellbirthRate 属性设置为非零值,我就无法更改它。

我有一个 UIView 的子类,它按照我想要的方式设置我的 CAEmitterLayer 和我的 CAEmitterCell。我在该类上定义了两个属性:

然后,在我的视图控制器中,我正在跟踪触摸,设置emitterLayer 的位置和emitterCell 出生率:

日志报告emitterView.emitterCell.birthRate 发生变化:

当我触摸屏幕时,发射器按预期启动,层跟随触摸,但是当我结束触摸时,发射器单元愉快地发射初始设置的任何值(在 touchesBegan 中设置的值)。无论我做什么,一旦将出生率值设置为非零值,我似乎都无法更改。日志报告值设置正确,但发射器继续发射。

但是,如果我更改 touchesEnded 方法来更改图层的位置,在我在emitterCell 上设置birthRate 之后,一切都会按预期工作:

有人可以解释为什么吗?

0 投票
2 回答
433 浏览

iphone - CAEmitterLayer 非常慢

我正在使用 Apple 设计一个粒子系统CAEmitterLayerCAEmitterCell并且在 iPhone5 和模拟器上一切都很好。但是一旦我在 iPhone4S 上运行它,粒子系统就会杀死 FPS。现在我尝试将屏幕上的粒子数量减少到每秒仅创建一个粒子的程度,并且 FPS 下降与每秒创建 500 个粒子时相同。iPhone4S 运行 iOS 6.1.3,iPhone5 运行 iOS 6.1.4。

CAEmitterLayer游戏这么慢是有原因的吗?即使每秒只产生一个粒子?

0 投票
0 回答
835 浏览

ios - 如何更改 CAEmitterLayer 位置而不在其间发射粒子?

当用户触摸屏幕(放置在触摸位置)时,我想在短时间内显示闪光。

问题是当我更改 CAEmitterLayer 时emitterPosition,它的作用就像是在尝试在大约 0.5 秒的时间内将此位置从旧值设置为新值,而不是立即更改它。

例如,发射器位置默认设置为 (0,0),所以当我第一次尝试触摸屏幕中心时,它会从 (0,0) 到当前位置发出一条闪光线,而不是发出火花形成中心。

为了停止闪烁,我birthRate在短暂延迟后将图层设置为 0,然后在触摸时更改emitterPositionbirthRate返回 1。

我能找到的唯一解决方案是在移动位置和打开之间有 0.5 秒的延迟birthRate

0 投票
1 回答
410 浏览

iphone - 方法发送到 CAEmitterLayer 但转到 CALayer

我设置了一个 CAEmitterLayer,它运行良好:

但是我添加了一行代码:

突然间,我明白了Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CALayer setEmitterPosition:]: unrecognized selector sent to instance 0x7546390'。调试窗口显示该对象是 CAEmitterLayer,而不仅仅是 CALayer。当我删除那行代码时,问题仍然存在。

0 投票
2 回答
3611 浏览

ios - iOS 7 CAEmitterLayer 不恰当地产生粒子

奇怪的问题我似乎无法解决仅在哪里,当出生率最初设置为非零值时iOS 7,会在屏幕上错误地生成粒子。CAEmitterLayer就好像它计算了该层未来的状态。

我在 DevForums 上看到一篇帖子,其中有几个人提到他们在使用 and 时遇到了类似的问题iOS 7CAEmitterLayer但没有人知道如何解决它。现在它iOS 7不再是测试版,我想我应该在这里问一下,看看是否有人可以破解它。我真的希望这不仅仅是一个我们必须等待7.0.17.1修复的错误。任何想法将不胜感激。谢谢!

0 投票
2 回答
1272 浏览

ios - CAEmitter 平滑启动动画

我正在尝试让 CAEmitterLayer 制作一种光剑动画。我想要一束光从一个点出现并停止。我的问题是我无法让动画的开始顺利进行。一旦我运行代码,它就好像已经过了几秒钟而没有任何动画。

我尽可能地剥离了代码,看看我是否能找到问题的根源,但即使是最简单的,它仍然会发生。这是我现在仍然存在问题的代码示例:

我猜我一定错过了一些明显的东西,但我已经好几天没能解决这个问题了。

将birthRate 设置为0 将使光束平滑消失,但将其设置回任意数字将导致它再次出现而没有动画。

感谢您的帮助。

0 投票
1 回答
386 浏览

ios - iOS:iOS 6 上的 CAEmitter 层和 EmitterCell 翻转图像

正在玩CAEmitterLayer,发现了一些非常奇怪的东西。

CAEmitterLayer在左下角设置了 45 度角(指向右上角),并尝试向右上角射箭。

一切正常,除了我通过content单元格属性设置的图像。

这是 iOS 7 设备上的原始图像:

在此处输入图像描述

在 iOS 6 上运行时,它变成了这样:

在此处输入图像描述

有没有人经历过这种情况,你知道为什么会这样吗?拥有两组图像并检查设备是 iOS 6 还是 iOS 7 并相应地设置图像对我来说不是问题,但我的好奇心促使我找出为什么会这样。提前致谢。

我正在使用 Xcode 5。