Cocos2d和UIKit动画不同步

时间:2012-07-18 02:30:30

标签: ios cocos2d-iphone uikit uiviewanimation

我正在尝试为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节点的移动速度不同,它们处于相同的起始位置,直到相同的结束位置。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

找到适用于同步移动by PhilM in this thread.

的解决方案

他将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;
}

谢谢PhilM!