现在我遇到了一个新问题。如何修改每个粒子的角度以使其朝向中心。就像图片一样:
问问题
1134 次
2 回答
0
为了将粒子转向它们的运动方向(在您的情况下:朝向中心),您可以执行以下操作:
- 将属性添加到CCParticleSystem.h
oldPos
中的粒子结构tCCParticle
- 用CCParticleSystem.m
oldPos
中的初始粒子位置初始化属性initParticle:
- 在计算新位置之前,使用 CCParticleSystem.m
oldPos
中的当前粒子位置更新属性。update:
在检查粒子是否还活着后,我立即在第 512 行执行此操作。 CCParticleSystemQuad
按照 Kazuki 的建议覆盖:- (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]; }
于 2013-04-18T13:24:25.693 回答
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
于 2011-06-28T02:04:03.417 回答