我想让粒子在矩形内。
这段代码中有什么错误?它只从发射器位置发射,而不是从矩形中的随机位置发射。
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];发布于 2012-09-07 13:33:22
kCAEmitterLayerRectangle不是renderMode的有效值。相反,您应该使用以下值之一
kCAEmitterLayerUnordered
kCAEmitterLayerOldestFirst
kCAEmitterLayerOldestLast
kCAEmitterLayerBackToFront
kCAEmitterLayerAdditivekCAEmitterLayerRectangle值应设置为默认为kCAEmitterLayerPoint的emitterShape。这就是为什么你只从一个点发射的原因。有效的emitterShapes为:
kCAEmitterLayerPoint
kCAEmitterLayerLine
kCAEmitterLayerRectangle
kCAEmitterLayerCuboid
kCAEmitterLayerCircle
kCAEmitterLayerSphere请参考the documentation了解它们的含义。
发布于 2013-03-01 16:48:33
正如David已经指出的,您正在使用的值对renderMode无效。它在emitterShape中使用。这可能是一个非常令人沮丧的错误,因为Xcode不会给您一个警告,因为它们属于同一类型(NSString)。即使读取了documentation,这样的错误也很容易被忽略。
使用像Particle Playground (用于UIKit发射器)或Particle Designer (用于cocos2d发射器)这样的工具会有很大帮助,因为它们只允许文档中指定的值。
它们都允许您在mac上配置发射器层/单元。粒子游乐场将发射器导出为objective c类,以便在项目中轻松导入。粒子设计器以交换格式导出,可以轻松导入到正确的cocos2d发射器类中。
完全公开:我写的粒子游乐场,我没有任何从属于粒子设计器(即使我真的很喜欢,使用和推荐它的cocos2d项目)。
https://stackoverflow.com/questions/12311875
复制相似问题