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); }
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); }
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); } }
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(); }