所以基本上我有 2 个调度程序函数,我想将它们放入 CCSequence 中。
id func1 = [CCCallFuncN actionWithTarget:self selector:@selector(pan1)];
id func2 = [CCCallFuncN actionWithTarget:self selector:@selector(pan2)];
id seq = [CCSequence actions: func1, func2, nil];
[img runAction:seq];
pan1 从左到右进行平移,pan2 从右到左进行平移。
-(void) pan1{
[self schedule:@selector(panLtoR) interval:0.05];
}
-(void) pan2{
[self schedule:@selector(panRtoL) interval:0.05];
}
我想要的结果是在 func2 开始之前完全完成 func1。但是现在...... func2 在 func1 仍在运行时开始。我不知道为什么。我怎么解决这个问题?提前致谢。
补充:panLtoR 的代码如下所示
-(void) panLtoR{
[self panLtoR: 1 andY:0.5];
}
-(void) panLtoR:(float) x andY: (float) y{
float rightAnchorX = x - m_minAnchorX;
if(m_curAnchorX <= rightAnchorX)
{
m_img.anchorPoint = ccp(m_curAnchorX, y);
m_curAnchorX += 0.005;
}
else{
[self unschedule:@selector(panLtoR)];
}
}
和 panRtoL 做类似的事情。基本上我想做的是通过移动锚点而不是位置来实现平移。我怎样才能使它在启动func2之前完成func1?