Beispiel #1
0
        protected override void AddedToScene()
        {
            base.AddedToScene();

            initPhysics();

            // Use the bounds to layout the positioning of our drawable assets
            var bounds = VisibleBoundsWorldspace;

            // position the label on the center of the screen
            //labelScore.Position = new CCPoint(80, bounds.Size.Height - 16);

            //labelLives.Position = new CCPoint(bounds.Size.Width - 100, bounds.Size.Height - 16);

            _progressTimer.Position = new CCPoint(bounds.Center.X, bounds.Center.Y);
            //_progressTimer.Midpoint = new CCPoint(0.5f, 0.5f);
            //_progressTimer.ReverseDirection = true;

            _cordinatesGenerator = new CordinatesGenerator(bounds);
            animator             = new Animator(_cordinatesGenerator);

            _cordinatesGenerator.SetSquaresCordinates(_squares);

            //_soundButton.Position = new CCPoint(bounds.Size.Width - 90, bounds.Size.Height - 90);
            //_pauseButton.Position = new CCPoint(90, bounds.Size.Height - 90);

            _cordinatesGenerator.SetSoundPosition(_soundButton);
            _cordinatesGenerator.SetPausePosition(_pauseButton);



            var touchListener = new CCEventListenerTouchOneByOne();

            touchListener.IsSwallowTouches = true;
            touchListener.OnTouchBegan     = this.OnTouchesBegan;
            //AddEventListener(touchListener, this);
            AddEventListener(touchListener, _redPlay.Current);
            AddEventListener(touchListener.Copy(), _greenPlay.Current);
            AddEventListener(touchListener.Copy(), _yellowPlay.Current);
            AddEventListener(touchListener.Copy(), _bluePlay.Current);

            FirstRun();
        }
        public void MakeStaticSprites()
        {
            sentenceFrame = spriteModelFactory.MakeSentenceFrame();
            AddChild(sentenceFrame, 0, SpriteTypes.FrameTag);

            speakerFrame = spriteModelFactory.MakeSpeakerFrame();
            AddEventListener(mListener, speakerFrame);
            AddChild(speakerFrame, 0, SpriteTypes.SpeakerTag);

            addFrame         = spriteModelFactory.MakeAddButton();
            addFrame.Visible = false;
            AddEventListener(mListener.Copy(), addFrame);
            AddChild(addFrame, 0, SpriteTypes.AddTag);

            takePhotoFrame         = spriteModelFactory.TakePhotoButton();
            takePhotoFrame.Visible = false;
            AddEventListener(mListener.Copy(), takePhotoFrame);
            AddChild(takePhotoFrame, 0, SpriteTypes.TakePhotoTag);

            addFolderFrame         = spriteModelFactory.MakeAddFolderButton();
            addFolderFrame.Visible = false;
            AddEventListener(mListener.Copy(), addFolderFrame);
            AddChild(addFolderFrame, 0, SpriteTypes.FolderTag);

            singleFrame         = spriteModelFactory.MakeSingleButton();
            singleFrame.Visible = false;
            AddEventListener(mListener.Copy(), singleFrame);
            AddChild(singleFrame, 0, SpriteTypes.SingleModeTag);

            multiFrame         = spriteModelFactory.MakeMultiButton();
            multiFrame.Visible = false;
            AddEventListener(mListener.Copy(), multiFrame);
            AddChild(multiFrame, 0, SpriteTypes.MultiModeTag);

            deleteFrame         = spriteModelFactory.MakeRemoveButton();
            deleteFrame.Visible = false;
            AddChild(deleteFrame, 0, SpriteTypes.RemoveTag);
        }
Beispiel #3
0
        public override void OnEnter()
        {
            base.OnEnter();

            var visibleBounds = VisibleBoundsWorldspace;
            var origin        = VisibleBoundsWorldspace.Origin;
            var size          = VisibleBoundsWorldspace.Size;

            var sprite1 = new CCSprite("Images/CyanSquare.png");

            sprite1.Position = origin + size.Center + new CCPoint(-80, 80);
            AddChild(sprite1, 10);

            var sprite2 = new CCSprite("Images/MagentaSquare.png");

            sprite2.Position = origin + size.Center;
            AddChild(sprite2, 20);

            var sprite3 = new CCSprite("Images/YellowSquare.png");

            sprite3.Position = CCPoint.Zero;
            sprite2.AddChild(sprite3, 1);

            // Make sprite1 touchable
            var listener1 = new CCEventListenerTouchOneByOne();

            listener1.IsSwallowTouches = true;

            listener1.OnTouchBegan = (touch, touchEvent) =>
            {
                var target = (CCSprite)touchEvent.CurrentTarget;

                var    locationInNode = touch.Location;
                var    s    = target.ContentSize;
                CCRect rect = target.BoundingBoxTransformedToWorld;

                if (rect.ContainsPoint(locationInNode))
                {
                    CCLog.Log("sprite began... x = {0}, y = {1}", locationInNode.X, locationInNode.Y);
                    target.Opacity = 180;
                    return(true);
                }
                return(false);
            };

            listener1.OnTouchMoved = (touch, touchEvent) =>
            {
                var     target = (CCSprite)touchEvent.CurrentTarget;
                CCPoint pt     = touch.PreviousLocation + touch.Delta;
                target.Position = target.WorldToParentspace(pt);
            };

            listener1.OnTouchEnded = (touch, touchEvent) =>
            {
                var target = (CCSprite)touchEvent.CurrentTarget;
                CCLog.Log("sprite onTouchesEnded..");
                target.Opacity = 255;
                if (target == sprite2)
                {
                    sprite1.LocalZOrder = 100;
                }
                else if (target == sprite1)
                {
                    sprite1.LocalZOrder = 0;
                }
            };


            sprite1.AddEventListener(listener1);
            sprite2.AddEventListener(listener1.Copy());
            sprite3.AddEventListener(listener1.Copy());


            var removeAllTouchItem = new CCMenuItemFont("Remove All Touch Listeners", (sender) => {
                var senderItem        = (CCMenuItemFont)sender;
                senderItem.Label.Text = "Only Next item could be clicked";

                RemoveEventListeners(CCEventListenerType.TOUCH_ONE_BY_ONE);

                var nextItem = new CCMenuItemFont("Next", (senderNext) => NextCallback(senderNext));


                CCMenuItemFont.FontSize = 16;
                nextItem.Position       = new CCPoint(visibleBounds.Origin.X + visibleBounds.Size.Width - 100, 100);

                var menu2         = new CCMenu(nextItem);
                menu2.Position    = CCPoint.Zero;
                menu2.AnchorPoint = CCPoint.AnchorLowerLeft;
                this.AddChild(menu2);
            });

            CCMenuItemFont.FontSize     = 16;
            removeAllTouchItem.Position = new CCPoint(visibleBounds.Origin.X + visibleBounds.Size.Width - 100, 80);

            var menu = new CCMenu(removeAllTouchItem);

            menu.Position    = CCPoint.Zero;
            menu.AnchorPoint = CCPoint.AnchorLowerLeft;
            AddChild(menu);
        }
Beispiel #4
0
        public StopPropagationTest() : base()
        {
            var touchOneByOneListener = new CCEventListenerTouchOneByOne();

            touchOneByOneListener.IsSwallowTouches = true;

            touchOneByOneListener.OnTouchBegan = (touch, touchEvent) =>
            {
                // Skip if don't touch top half screen.
                if (!IsPointInTopHalfAreaOfScreen(touch.LocationOnScreen))
                {
                    return(false);
                }

                var target = (CCSprite)touchEvent.CurrentTarget;
                Debug.Assert(target.Tag == TAG_BLUE_SPRITE, "Yellow blocks shouldn't response event.");

                if (IsPointInNode(touch.LocationOnScreen, target))
                {
                    target.Opacity = 180;
                    return(true);
                }

                // Stop propagation, so yellow blocks will not be able to receive event.
                touchEvent.StopPropogation();
                return(false);
            };

            touchOneByOneListener.OnTouchEnded = (touch, touchEvent) =>
            {
                var target = (CCSprite)touchEvent.CurrentTarget;
                target.Opacity = 255;
            };

            var touchAllAtOnceListener = new CCEventListenerTouchAllAtOnce();

            touchAllAtOnceListener.OnTouchesBegan = (touches, touchEvent) =>
            {
                // Skip if don't touch top half screen.
                if (IsPointInTopHalfAreaOfScreen(touches[0].LocationOnScreen))
                {
                    return;
                }

                var target = (CCSprite)touchEvent.CurrentTarget;
                Debug.Assert(target.Tag == TAG_BLUE_SPRITE2, "Yellow blocks shouldn't response event.");

                if (IsPointInNode(touches[0].LocationOnScreen, target))
                {
                    target.Opacity = 180;
                }
                // Stop propagation, so yellow blocks will not be able to receive event.
                touchEvent.StopPropogation();
            };

            touchAllAtOnceListener.OnTouchesEnded = (touches, touchEvent) =>
            {
                // Skip if don't touch top half screen.
                if (IsPointInTopHalfAreaOfScreen(touches[0].LocationOnScreen))
                {
                    return;
                }

                var target = (CCSprite)touchEvent.CurrentTarget;
                Debug.Assert(target.Tag == TAG_BLUE_SPRITE2, "Yellow blocks shouldn't response event.");

                if (IsPointInNode(touches[0].LocationOnScreen, target))
                {
                    target.Opacity = 255;;
                }
                // Stop propagation, so yellow blocks will not be able to receive event.
                touchEvent.StopPropogation();
            };

            var keyboardEventListener = new CCEventListenerKeyboard();

            keyboardEventListener.OnKeyPressed = (keyboardEvent) =>
            {
                var target = (CCSprite)keyboardEvent.CurrentTarget;
                Debug.Assert(target.Tag == TAG_BLUE_SPRITE || target.Tag == TAG_BLUE_SPRITE2, "Yellow blocks shouldn't response event.");
                // Stop propagation, so yellow blocks will not be able to receive event.
                keyboardEvent.StopPropogation();
            };


            const int SPRITE_COUNT = 8;

            for (int i = 0; i < SPRITE_COUNT; i++)
            {
                CCSprite sprite;
                CCSprite sprite2;

                if (i == 4)
                {
                    sprite     = new CCSprite("Images/CyanSquare.png");
                    sprite.Tag = TAG_BLUE_SPRITE;
                    AddChild(sprite, 100);

                    sprite2     = new CCSprite("Images/CyanSquare.png");
                    sprite2.Tag = TAG_BLUE_SPRITE2;
                    AddChild(sprite2, 100);
                }
                else
                {
                    sprite = new CCSprite("Images/YellowSquare.png");
                    AddChild(sprite, 0);
                    sprite2 = new CCSprite("Images/YellowSquare.png");
                    AddChild(sprite2, 0);
                }

                sprite.AddEventListener(touchOneByOneListener.Copy());
                sprite.AddEventListener(keyboardEventListener.Copy());

                sprite2.AddEventListener(touchAllAtOnceListener.Copy());
                sprite2.AddEventListener(keyboardEventListener.Copy());


                var visibleBounds = Layer.VisibleBoundsWorldspace;
                sprite.Position  = new CCPoint(visibleBounds.Origin.X + visibleBounds.Size.Width / (SPRITE_COUNT - 1) * i, visibleBounds.Center.Y + sprite2.ContentSize.Height / 2 + 10);
                sprite2.Position = new CCPoint(visibleBounds.Origin.X + visibleBounds.Size.Width / (SPRITE_COUNT - 1) * i, visibleBounds.Center.Y - sprite2.ContentSize.Height / 2 - 10);
            }
        }
Beispiel #5
0
        public override void OnEnter()
        {
            base.OnEnter();

            int i;

            for (i = 0; i < SPRITE_COUNT; i++)
            {
                CCSprite sprite;

                if (i == 4)
                {
                    sprite = new CCSprite("Images/CyanSquare.png")
                    {
                        Tag = TAG_SPRITE + i
                    };
                    blueSprite = sprite;
                    //blueSprite.Scene = Scene;
                    blueSprite.GlobalZOrder = -1;
                }
                else
                {
                    sprite = new CCSprite("Images/YellowSquare.png")
                    {
                        Tag = TAG_SPRITE + i
                    };
                }

                // For right now since we do not draw by GlobalZOrder we will move a value to the
                // Local z-order so we can fake this.  It is a Hack for now for the foreground
                // to background movement.
                AddChild(sprite, 2);
            }

            CCRect visibleRect = Layer.VisibleBoundsWorldspace;

            var listener = new CCEventListenerTouchOneByOne();

            listener.IsSwallowTouches = true;

            listener.OnTouchBegan = (touch, touchEvent) =>
            {
                var target = (CCSprite)touchEvent.CurrentTarget;

                var locationInNode = target.Layer.ScreenToWorldspace(touch.LocationOnScreen);
                var s    = target.ContentSize;
                var rect = target.BoundingBoxTransformedToWorld;

                if (rect.ContainsPoint(locationInNode))
                {
                    CCLog.Log("sprite began... x = {0}, y = {1}", locationInNode.X, locationInNode.Y);
                    target.Opacity = 180;
                    return(true);
                }
                return(false);
            };

            listener.OnTouchMoved = (touch, touchEvent) =>
            {
                var target = (CCSprite)touchEvent.CurrentTarget;
                target.Position = target.Position + touch.Delta;
            };

            listener.OnTouchEnded = (touch, touchEvent) =>
            {
                var target = (CCSprite)touchEvent.CurrentTarget;
                CCLog.Log("sprite OnTouchEnded...");
                target.Opacity = 255;
            };

            i = 0;
            foreach (var child in Children)
            {
                if (child.Tag >= TAG_SPRITE && child.Tag <= TAG_SPRITE_END)
                {
                    child.Position = new CCPoint(visibleRect.Origin.X + visibleRect.Size.Width / (SPRITE_COUNT - 1) * i, visibleRect.Center.Y);
                    i++;
                    child.AddEventListener(listener.Copy());
                }
            }

            Schedule();
        }