0

今、私は新しい質問に出会いました。すべてのパーティクルの角度を変更して中心に向ける方法。画像のように:

画像 1: 通常の粒子の効果:
画像 1: 通常の粒子の効果

画像 2: 必要なもの:
画像 2: 必要なもの http://tinypic.com/images/404.gif

4

2 に答える 2

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 に答える
0

粒子を移動方向 (この場合は中心) に向けるには、次のようにします。

  1. プロパティをCCParticleSystem.holdPosの粒子構造体に追加します。tCCParticle
  2. CCParticleSystem.moldPosの初期粒子位置でプロパティを初期化します。initParticle:
  3. 新しい位置が計算される前に、CCParticleSystem.moldPosの現在の粒子位置でプロパティを更新します。update:パーティクルがまだ生きているかどうかを確認した直後に、512 行でこれを行います。
  4. CCParticleSystemQuadKazuki の提案に従ってオーバーライドします。

    - (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 に答える