Пример #1
0
        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;
        }
Пример #2
0
        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);
        }
Пример #3
0
        public static CCBezierTo actionWithDuration(float t, ccBezierConfig c)
        {
            CCBezierTo ret = new CCBezierTo();
            ret.initWithDuration(t, c);

            return ret;
        }
Пример #4
0
        public static CCBezierTo actionWithDuration(float t, ccBezierConfig c)
        {
            CCBezierTo ret = new CCBezierTo();

            ret.initWithDuration(t, c);

            return(ret);
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
 protected CCBezierTo(CCBezierTo bezierTo) : base(bezierTo)
 {
     InitWithDuration(bezierTo.m_fDuration, bezierTo.m_sConfig);
 }
Пример #8
0
        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);
            }
        }
Пример #9
0
 protected CCBezierTo(CCBezierTo bezierTo) : base(bezierTo)
 {
     InitWithDuration(bezierTo.m_fDuration, bezierTo.m_sConfig);
 }