public override CCObject copyWithZone(CCZone zone) { CCZone tmpZone = zone; CCSequence ret = null; if (tmpZone != null && tmpZone.m_pCopyObject != null) { ret = tmpZone.m_pCopyObject as CCSequence; if (ret == null) { return(null); } } else { ret = new CCSequence(); tmpZone = new CCZone(ret); } base.copyWithZone(tmpZone); CCFiniteTimeAction param1 = m_pActions[0].copy() as CCFiniteTimeAction; CCFiniteTimeAction param2 = m_pActions[1].copy() as CCFiniteTimeAction; if (param1 == null || param2 == null) { return(null); } ret.initOneTwo(param1, param2); return(ret); }
public bool initOneTwo(CCFiniteTimeAction action1, CCFiniteTimeAction action2) { Debug.Assert(action1 != null); Debug.Assert(action2 != null); bool bRet = false; float d1 = action1.duration; float d2 = action2.duration; if (base.initWithDuration(Math.Max(d1, d2))) { m_pOne = action1; m_pTwo = action2; if (d1 > d2) { m_pTwo = CCSequence.actionOneTwo(action2, CCDelayTime.actionWithDuration(d1 - d2)); } else if (d1 < d2) { m_pOne = CCSequence.actionOneTwo(action1, CCDelayTime.actionWithDuration(d2 - d1)); } bRet = true; } return(bRet); }
public static CCSequence actionOneTwo(CCFiniteTimeAction actionOne, CCFiniteTimeAction actionTwo) { CCSequence sequence = new CCSequence(); sequence.initOneTwo(actionOne, actionTwo); return(sequence); }
public override CCFiniteTimeAction reverse() { return(CCSequence.actionOneTwo(m_pActions[1].reverse(), m_pActions[0].reverse())); }