所以基本上我有2個調度程序函數,我想把它們放在CCSequence中。把調度程序放在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];
}
我希望的結果是讓func1在func2開始之前完全完成。 但是現在...當func1仍在運行時,func2開始。我無法弄清楚爲什麼。 我該如何解決這個問題?提前致謝。
補充: 這裏的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?
您可以顯示平移代碼?這可能有助於制定更好的解決方案。 –
我已將代碼添加到原帖 –