今、私は新しい質問に出会いました。すべてのパーティクルの角度を変更して中心に向ける方法。画像のように:
画像 2: 必要なもの:
画像 2: 必要なもの http://tinypic.com/images/404.gif
今、私は新しい質問に出会いました。すべてのパーティクルの角度を変更して中心に向ける方法。画像のように:
画像 2: 必要なもの:
画像 2: 必要なもの http://tinypic.com/images/404.gif
このコードはどうですか?パーティクルの回転を指定するには、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
粒子を移動方向 (この場合は中心) に向けるには、次のようにします。
oldPos
の粒子構造体に追加します。tCCParticle
oldPos
の初期粒子位置でプロパティを初期化します。initParticle:
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];
}