问题标签 [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.
ios - CAEmitterLayer 未显示
我只是添加一个UIView
到 mystoryboard view controller
然后创建一个UIView
类来显示粒子效果。我将UIView's
类名更改为我创建的自定义类的名称。我在课堂上使用的代码UIView
没有显示我期望的粒子效果。代码如下:
ios - CAEmitterCell 访问所有粒子
我有一个 CAEmitterCell 工作,但我希望粒子减速并停止。似乎如果我可以访问所有粒子,那么我可以将它们的速度和/或加速度降低到 0,它们就会停止移动。
我试过这样的事情:
但这不起作用,因为我的 layerEmitter 只有一个emitterCell,我不需要emitterCell,而是它已经创建的粒子。
我在文档中没有看到这一点,这让我相信我有一个概念问题。我很感激任何帮助。
ios - CAEmitterCell 不尊重birthRate 的变化
我想创建一个仅在用户触摸屏幕时发射的粒子效果,但是一旦将 CAEmitterCellbirthRate 属性设置为非零值,我就无法更改它。
我有一个 UIView 的子类,它按照我想要的方式设置我的 CAEmitterLayer 和我的 CAEmitterCell。我在该类上定义了两个属性:
然后,在我的视图控制器中,我正在跟踪触摸,设置emitterLayer 的位置和emitterCell 出生率:
日志报告emitterView.emitterCell.birthRate 发生变化:
当我触摸屏幕时,发射器按预期启动,层跟随触摸,但是当我结束触摸时,发射器单元愉快地发射初始设置的任何值(在 touchesBegan 中设置的值)。无论我做什么,一旦将出生率值设置为非零值,我似乎都无法更改。日志报告值设置正确,但发射器继续发射。
但是,如果我更改 touchesEnded 方法来更改图层的位置,在我在emitterCell 上设置birthRate 之后,一切都会按预期工作:
有人可以解释为什么吗?
iphone - CAEmitterLayer 非常慢
我正在使用 Apple 设计一个粒子系统CAEmitterLayer
,CAEmitterCell
并且在 iPhone5 和模拟器上一切都很好。但是一旦我在 iPhone4S 上运行它,粒子系统就会杀死 FPS。现在我尝试将屏幕上的粒子数量减少到每秒仅创建一个粒子的程度,并且 FPS 下降与每秒创建 500 个粒子时相同。iPhone4S 运行 iOS 6.1.3,iPhone5 运行 iOS 6.1.4。
CAEmitterLayer
游戏这么慢是有原因的吗?即使每秒只产生一个粒子?
ios - 如何更改 CAEmitterLayer 位置而不在其间发射粒子?
当用户触摸屏幕(放置在触摸位置)时,我想在短时间内显示闪光。
问题是当我更改 CAEmitterLayer 时emitterPosition
,它的作用就像是在尝试在大约 0.5 秒的时间内将此位置从旧值设置为新值,而不是立即更改它。
例如,发射器位置默认设置为 (0,0),所以当我第一次尝试触摸屏幕中心时,它会从 (0,0) 到当前位置发出一条闪光线,而不是发出火花形成中心。
为了停止闪烁,我birthRate
在短暂延迟后将图层设置为 0,然后在触摸时更改emitterPosition
并birthRate
返回 1。
我能找到的唯一解决方案是在移动位置和打开之间有 0.5 秒的延迟birthRate
。
iphone - 方法发送到 CAEmitterLayer 但转到 CALayer
我设置了一个 CAEmitterLayer,它运行良好:
但是我添加了一行代码:
突然间,我明白了Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CALayer setEmitterPosition:]: unrecognized selector sent to instance 0x7546390'
。调试窗口显示该对象是 CAEmitterLayer,而不仅仅是 CALayer。当我删除那行代码时,问题仍然存在。
ios - iOS 7 CAEmitterLayer 不恰当地产生粒子
奇怪的问题我似乎无法解决仅在哪里,当出生率最初设置为非零值时iOS 7
,会在屏幕上错误地生成粒子。CAEmitterLayer
就好像它计算了该层未来的状态。
我在 DevForums 上看到一篇帖子,其中有几个人提到他们在使用 and 时遇到了类似的问题iOS 7
,CAEmitterLayer
但没有人知道如何解决它。现在它iOS 7
不再是测试版,我想我应该在这里问一下,看看是否有人可以破解它。我真的希望这不仅仅是一个我们必须等待7.0.1
或7.1
修复的错误。任何想法将不胜感激。谢谢!
ios - CAEmitter 平滑启动动画
我正在尝试让 CAEmitterLayer 制作一种光剑动画。我想要一束光从一个点出现并停止。我的问题是我无法让动画的开始顺利进行。一旦我运行代码,它就好像已经过了几秒钟而没有任何动画。
我尽可能地剥离了代码,看看我是否能找到问题的根源,但即使是最简单的,它仍然会发生。这是我现在仍然存在问题的代码示例:
我猜我一定错过了一些明显的东西,但我已经好几天没能解决这个问题了。
将birthRate 设置为0 将使光束平滑消失,但将其设置回任意数字将导致它再次出现而没有动画。
感谢您的帮助。
ios - iOS:iOS 6 上的 CAEmitter 层和 EmitterCell 翻转图像
正在玩CAEmitterLayer
,发现了一些非常奇怪的东西。
我CAEmitterLayer
在左下角设置了 45 度角(指向右上角),并尝试向右上角射箭。
一切正常,除了我通过content
单元格属性设置的图像。
这是 iOS 7 设备上的原始图像:
在 iOS 6 上运行时,它变成了这样:
有没有人经历过这种情况,你知道为什么会这样吗?拥有两组图像并检查设备是 iOS 6 还是 iOS 7 并相应地设置图像对我来说不是问题,但我的好奇心促使我找出为什么会这样。提前致谢。
我正在使用 Xcode 5。