2

CCFollowを使用してCCParticleSystemのインスタンスでスプライトを追跡しようとしています。CCParticleSystem のインスタンスをスプライトの子にしたくないのは、スプライトが削除された後に表示されるようにするためです。スプライトを左下から右上隅に移動すると、ParticleSystem は中央から左下隅に移動します。なぜそれが起こるのか理解できません。

サンプルコードは次のとおりです。

-(id) init
{
    if( (self=[super init]) ) {
        CCSprite *someSprite = [CCSprite spriteWithFile:@"Icon.png"];
        [self addChild:someSprite];
        id action = [CCMoveTo actionWithDuration:5 position:ccp(480,320)];
        [someSprite runAction:action];

        CCParticleSystemQuad *effect = [CCParticleMeteor node];
//      effect.positionType = kCCPositionTypeFree;
//      effect.positionType = kCCPositionTypeRelative;
//      effect.positionType = kCCPositionTypeGrouped; changing of positionType to any of this options does not make any sense
        [effect runAction:[CCFollow actionWithTarget:someSprite]];
        [self addChild:effect];
    }
    return self;
}
4

1 に答える 1

1

それは悪いドキュメントのケースです。

私はこれを自分で試しましたが、同じ結果が得られました。コードと存在するドキュメントの断片を見ると、CCFollow アクションは、CCLayer、CCScene、おそらく CCNode などのフルスクリーン ノードでのみ使用されることを意図しています。次のように文書化します。

CCFollowは、レイヤーやシーンをプレイヤーオブジェクトなどの別のノードに追従させることで、画面全体をスクロールするアクションです。これは、カメラ オブジェクトを移動したり、位置を手動で更新したりするための代替手段です。

于 2012-09-19T09:23:17.967 に答える