public override CCObject copyWithZone(CCZone zone) { CCZone tmpZone = zone; CCBezierTo ret = null; if (tmpZone != null && tmpZone.m_pCopyObject != null) { ret = tmpZone.m_pCopyObject as CCBezierTo; if (ret == null) { return null; } } else { ret = new CCBezierTo(); tmpZone = new CCZone(ret); } base.copyWithZone(tmpZone); ret.initWithDuration(m_fDuration, m_sConfig); return ret; }
public override CCObject copyWithZone(CCZone zone) { CCZone tmpZone = zone; CCBezierTo ret = null; if (tmpZone != null && tmpZone.m_pCopyObject != null) { ret = tmpZone.m_pCopyObject as CCBezierTo; if (ret == null) { return(null); } } else { ret = new CCBezierTo(); tmpZone = new CCZone(ret); } base.copyWithZone(tmpZone); ret.initWithDuration(m_fDuration, m_sConfig); return(ret); }
public static CCBezierTo actionWithDuration(float t, ccBezierConfig c) { CCBezierTo ret = new CCBezierTo(); ret.initWithDuration(t, c); return ret; }
public static CCBezierTo actionWithDuration(float t, ccBezierConfig c) { CCBezierTo ret = new CCBezierTo(); ret.initWithDuration(t, c); return(ret); }
public override void OnEnter() { base.OnEnter(); var s = CCDirector.SharedDirector.WinSize; // // startPosition can be any coordinate, but since the movement // is relative to the Bezier curve, make it (0,0) // centerSprites(3); // sprite 1 ccBezierConfig bezier; bezier.ControlPoint1 = new CCPoint(0, s.Height / 2); bezier.ControlPoint2 = new CCPoint(300, -s.Height / 2); bezier.EndPosition = new CCPoint(300, 100); var bezierForward = new CCBezierBy(3, bezier); var bezierBack = bezierForward.Reverse(); var rep = new CCRepeatForever((CCActionInterval)CCSequence.FromActions(bezierForward, bezierBack)); // sprite 2 m_tamara.Position = new CCPoint(80, 160); ccBezierConfig bezier2; bezier2.ControlPoint1 = new CCPoint(100, s.Height / 2); bezier2.ControlPoint2 = new CCPoint(200, -s.Height / 2); bezier2.EndPosition = new CCPoint(240, 160); var bezierTo1 = new CCBezierTo(2, bezier2); // sprite 3 m_kathia.Position = new CCPoint(400, 160); var bezierTo2 = new CCBezierTo(2, bezier2); m_grossini.RunAction(rep); m_tamara.RunAction(bezierTo1); m_kathia.RunAction(bezierTo2); }
public override void onEnter() { base.onEnter(); CCSize s = CCDirector.sharedDirector().getWinSize(); // // startPosition can be any coordinate, but since the movement // is relative to the Bezier curve, make it (0,0) // centerSprites(3); // sprite 1 ccBezierConfig bezier; bezier.controlPoint_1 = new CCPoint(0, s.height / 2); bezier.controlPoint_2 = new CCPoint(300, -s.height / 2); bezier.endPosition = new CCPoint(300, 100); CCActionInterval bezierForward = CCBezierBy.actionWithDuration(3, bezier); CCFiniteTimeAction bezierBack = bezierForward.reverse(); CCAction rep = CCRepeatForever.actionWithAction((CCActionInterval)CCSequence.actions(bezierForward, bezierBack)); // sprite 2 m_tamara.position = new CCPoint(80, 160); ccBezierConfig bezier2; bezier2.controlPoint_1 = new CCPoint(100, s.height / 2); bezier2.controlPoint_2 = new CCPoint(200, -s.height / 2); bezier2.endPosition = new CCPoint(240, 160); CCActionInterval bezierTo1 = CCBezierTo.actionWithDuration(2, bezier2); // sprite 3 m_kathia.position = new CCPoint(400, 160); CCActionInterval bezierTo2 = CCBezierTo.actionWithDuration(2, bezier2); m_grossini.runAction(rep); m_tamara.runAction(bezierTo1); m_kathia.runAction(bezierTo2); }
protected CCBezierTo(CCBezierTo bezierTo) : base(bezierTo) { InitWithDuration(bezierTo.m_fDuration, bezierTo.m_sConfig); }
private void AddMonster(float time) { var selectedMonster = new Random().Next() % _monsters.Count; var monster = _monsters[selectedMonster]; var m = monster.Movement; //!IMPORTANT -- Every Sprite in Screen must be an new CCSprite! Each Sprite can only be one time on screen var spriteMonster = new CCSprite(monster.MonsterSprite); spriteMonster.Scale = _appScale; spriteMonster.Tag = monster.Tag; //BLOCK 1 - Determine where to spawn the monster along the Y axis var winSize = Window.WindowSizeInPixels; var minX = (spriteMonster.ContentSize.Width / 2); var maxX = winSize.Width - spriteMonster.ContentSize.Width / 2; var rangeX = maxX - minX; var actualY = (new Random().Next() % rangeX) + minX; //BLOCK 2 - Determine speed of the monster var minDuration = monster.MinVelocity; var maxDuration = monster.MaxVelocity; var rangeDuration = maxDuration - minDuration; var actualDuration = (new Random().Next() % rangeDuration) + minDuration; if (m == 1) { spriteMonster.Position = new CCPoint(actualY, winSize.Height + spriteMonster.ContentSize.Height / 2); AddChild(spriteMonster); var actionMove = new CCMoveTo(actualDuration, new CCPoint(actualY, -spriteMonster.ContentSize.Height / 2)); var actionMoveComplete = new CCCallFuncN(node => { _monstersOnScreen.Remove(node); node.RemoveFromParent(); _lives--; var index = _hearths.Count - 1; RemoveChild(_hearths[index]); _hearths.RemoveAt(index); if (_lives == 0) { Window.DefaultDirector.ReplaceScene(GameStartLayer.GameStartLayerScene(Window)); } }); spriteMonster.RunActions(actionMove, actionMoveComplete); _monstersOnScreen.Add(spriteMonster); } else if (m == 2) { spriteMonster.Position = new CCPoint(actualY, winSize.Height + spriteMonster.ContentSize.Height / 2); AddChild(spriteMonster); var actionMoveComplete = new CCCallFuncN(node => { _monstersOnScreen.Remove(node); node.RemoveFromParent(); _lives--; var index = _hearths.Count - 1; RemoveChild(_hearths[index]); _hearths.RemoveAt(index); if (_lives == 0) { Window.DefaultDirector.ReplaceScene(GameStartLayer.GameStartLayerScene(Window)); } }); var bezierList = new List <CCFiniteTimeAction>(); var bezier = new CCBezierConfig(); var splitDuration = actualDuration / 6.0f; CCBezierTo bezierAction; for (int i = 0; i < 6; i++) { if (i % 2 == 0) { bezier.ControlPoint1 = new CCPoint(actualY + 100, winSize.Height - (100 + (i * 200))); bezier.ControlPoint2 = new CCPoint(actualY + 100, winSize.Height - (100 + (i * 200))); bezier.EndPosition = new CCPoint(actualY, winSize.Height - (200 + (i * 200))); bezierAction = new CCBezierTo(splitDuration, bezier); } else { bezier.ControlPoint1 = new CCPoint(actualY - 100, winSize.Height - (100 + (i * 200))); bezier.ControlPoint2 = new CCPoint(actualY - 100, winSize.Height - (100 + (i * 200))); bezier.EndPosition = new CCPoint(actualY, winSize.Height - (200 + (i * 200))); bezierAction = new CCBezierTo(splitDuration, bezier); } bezierList.Add(bezierAction); } bezierList.Add(actionMoveComplete); var seq = new CCSequence(bezierList.ToArray()); spriteMonster.RunAction(seq); _monstersOnScreen.Add(spriteMonster); } }