现在我遇到了一个新问题。如何修改每个粒子的角度使其朝向中心。就像图像一样:
图1:正常粒子有效:
Image 1: normal particles effecing http://i51.tinypic.com/nmkt9y.jpg
图2:我需要:
Image 2: which I need http://i56.tinypic.com/bffi4h.jpg
答案 0 :(得分:0)
这段代码怎么样?您需要覆盖CCParticleSystemQuad update:或updateQuadWithParticle:newPosition:方法以指定粒子的旋转。 CCParticleSystemPoint无法旋转粒子。
@interface MyParticleSystem : CCParticleSystemQuad
@end
@implementation MyParticleSystem
- (void)updateQuadWithParticle:(tCCParticle*)particle newPosition:(CGPoint)pos
{
particle->rotation = ccpToAngle(particle->pos) * 180.0f / M_PI;
[super updateQuadWithParticle:particle newPosition:pos];
}
@end
答案 1 :(得分:0)
为了将粒子朝向他们的移动方向(在您的情况下:朝向中心),您可以执行以下操作:
oldPos
属性添加到CCParticleSystem.h中的粒子tCCParticle
结构oldPos
中的初始粒子位置初始化initParticle:
属性oldPos
中的当前粒子位置更新update:
属性。在检查粒子是否还活着之后,我立即在第512行中执行此操作。按照Kazuki的建议覆盖CCParticleSystemQuad
:
- (void)updateQuadWithParticle:(tCCParticle *)particle
newPosition:(CGPoint)pos
{
CGPoint direction = ccpSub(particle->pos, particle->oldPos);
CGPoint n = ccpNormalize(direction);
CGFloat a = -CC_RADIANS_TO_DEGREES(ccpToAngle(n) - M_PI_2);
particle->rotation = a;
[super updateQuadWithParticle:particle newPosition:pos];
}