nextFrame:(ccTime)dtのような関数で手動で位置を更新することにより、アクションを使用せずに最初のスプライトを移動できます。そうすることで、スプライトの位置とその上に配置するためのオフセットに基づいて、別のスプライトの位置を簡単に更新できます。
別の解決策は、フォロワースプライトをその親から削除し、移動ノードの子として追加することです。これは、ちらつきやパフォーマンスの低下なしに実行できると思います。
編集:
別の解決策(おそらく最良の解決策)
アクションでうまく機能する優れたアプローチなので、手動で移動をスケジュールする必要はありません
移動するスプライトにプロパティを追加して(まだ行っていない場合は、CCSpriteからサブクラス化する必要があります)、フォロワーへの参照を保持できます。
@property (readwrite, nonatomic, assign) CCSprite *follower;
@property (readwrite, nonatomic) BOOL followerActive;
次に、ゲームの初期化で、両方のスプライトを作成し、それらをメインレイヤーの子として追加してから、オブジェクトからフォロワーに弱参照を追加します。
platform.follower = followerSprite;
そして、フォロープラットフォームを有効にする必要がある場合。followerActive= YES;
移動するスプライトのこの時点で、setPositionプロパティをオーバーライドできます
-(void) setPosition:(CGPoint)position {
if(self.followerActive){self.follower.position = ccpAdd(position、offset); } [super setPosition:position]; }