1

Cocos2d ノードと UIKit ビューの動きを次のようにアニメーション化しようとしています。

-(void)someFunction {
    [myCocosNode runAction:[CCMoveTo actionWithDuration:myTime position:cocosPoint]];
    [UIView animateWithDuration:myTime animations:^{ myView.frame = CGRectMake(uiPoint.x, uiPoint.y, myWidth, myHeight); }];
}

しかし、UIKit ビューは Cocos2d ノードと同じ速度では移動せず、同じ開始位置から同じ終了位置に移動します。

何か案は?

4

1 に答える 1

1

このスレッドで、PhilM による動きの同期に役立つソリューションを見つけました。

彼は UIView を CCLayer のサブクラスにアタッチし、レイヤが移動したときに の位置setPosition:を更新するためにオーバーライドします。UIView次にCCMoveTo、レイヤーで使用すると、動きが と同期されUIViewます。

-(void)setPosition:(CGPoint)pos {
    [super setPosition:pos];

   CGRect frame = slider.frame;
   frame.origin.y = frame.origin.y + ([self position].y - pos.y); // Changed this line a bit to get correct positioning
   slider.frame = frame;
}

ありがとうフィルM!

于 2012-07-18T16:46:47.313 に答える