2011-06-27 6 views

答えて

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 
+0

は、一樹、ありがとうございました。私はあなたのコードをテストしましたが、すべての粒子を中心に向けることはできません。 – Huwell

0

  1. CCParticleSystem中の粒子tCCParticle構造体にoldPosプロパティを追加し、次の操作を行うことができます.H
  2. はCCParticleSystem.m
  3. 更新oldPosプロパティウィットにinitParticle:初期粒子位置にoldPosプロパティを初期化し新しい位置が計算される前に、CCParticleSystem.mのupdate:の現在のパーティクル位置。パーティクルがまだ生きているかどうかを確認した直後、私は512行目でこれを行います。一樹により示唆されるよう
  4. オーバーライド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]; 
    } 
    
関連する問題