首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CAEmitterLayer - kCAEmitterLayerRectangle渲染模式?

CAEmitterLayer - kCAEmitterLayerRectangle渲染模式?
EN

Stack Overflow用户
提问于 2012-09-07 12:47:49
回答 2查看 928关注 0票数 0

我想让粒子在矩形内。

这段代码中有什么错误?它只从发射器位置发射,而不是从矩形中的随机位置发射。

代码语言:javascript
复制
fireEmitter = [CAEmitterLayer layer];
[self.view.layer fireEmitter];
fireEmitter.emitterPosition = self.view.center;
fireEmitter.emitterSize =CGSizeMake(100, 100);
fireEmitter.renderMode = kCAEmitterLayerRectangle;
fireEmitter.emitterCells = [NSArray arrayWithObjects:fire, nil];
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-07 13:33:22

kCAEmitterLayerRectangle不是renderMode的有效值。相反,您应该使用以下值之一

代码语言:javascript
复制
kCAEmitterLayerUnordered
kCAEmitterLayerOldestFirst
kCAEmitterLayerOldestLast
kCAEmitterLayerBackToFront
kCAEmitterLayerAdditive

kCAEmitterLayerRectangle值应设置为默认为kCAEmitterLayerPointemitterShape。这就是为什么你只从一个点发射的原因。有效的emitterShapes为:

代码语言:javascript
复制
kCAEmitterLayerPoint
kCAEmitterLayerLine
kCAEmitterLayerRectangle
kCAEmitterLayerCuboid
kCAEmitterLayerCircle
kCAEmitterLayerSphere

请参考the documentation了解它们的含义。

票数 2
EN

Stack Overflow用户

发布于 2013-03-01 16:48:33

正如David已经指出的,您正在使用的值对renderMode无效。它在emitterShape中使用。这可能是一个非常令人沮丧的错误,因为Xcode不会给您一个警告,因为它们属于同一类型(NSString)。即使读取了documentation,这样的错误也很容易被忽略。

使用像Particle Playground (用于UIKit发射器)或Particle Designer (用于cocos2d发射器)这样的工具会有很大帮助,因为它们只允许文档中指定的值。

它们都允许您在mac上配置发射器层/单元。粒子游乐场将发射器导出为objective c类,以便在项目中轻松导入。粒子设计器以交换格式导出,可以轻松导入到正确的cocos2d发射器类中。

完全公开:我写的粒子游乐场,我没有任何从属于粒子设计器(即使我真的很喜欢,使用和推荐它的cocos2d项目)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12311875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档