今、私は新しい質問に会いました。すべてのパーティクルの角度を変更して中心に向ける方法ただ、画像のよう:Cocos2Dで粒子の角度を変更する方法
画像1:通常の粒子がeffecing:
Image 1: normal particles effecing http://i51.tinypic.com/nmkt9y.jpg
画像2:私は必要があります。このコードについて
Image 2: which I need http://i56.tinypic.com/bffi4h.jpg
今、私は新しい質問に会いました。すべてのパーティクルの角度を変更して中心に向ける方法ただ、画像のよう:Cocos2Dで粒子の角度を変更する方法
画像1:通常の粒子がeffecing:
Image 1: normal particles effecing http://i51.tinypic.com/nmkt9y.jpg
画像2:私は必要があります。このコードについて
Image 2: which I need http://i56.tinypic.com/bffi4h.jpg
どのように?パーティクルの回転を指定するには、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
:
tCCParticle
構造体にoldPos
プロパティを追加し、次の操作を行うことができます.HoldPos
プロパティウィットにinitParticle:
初期粒子位置にoldPos
プロパティを初期化し新しい位置が計算される前に、CCParticleSystem.mのupdate:
の現在のパーティクル位置。パーティクルがまだ生きているかどうかを確認した直後、私は512行目でこれを行います。一樹により示唆されるようオーバーライド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];
}
は、一樹、ありがとうございました。私はあなたのコードをテストしましたが、すべての粒子を中心に向けることはできません。 – Huwell