我正在尝试为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节点的移动速度不同,它们处于相同的起始位置,直到相同的结束位置。
有什么想法吗?
答案 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!