public override void OnEnter () { spriteSaved = false; base.OnEnter (); var origin = Layer.VisibleBoundsWorldspace.Origin; var size = Layer.VisibleBoundsWorldspace.Size; //MenuItemFont::setFontSize(20); var sprite = new CCSprite("Images/CyanSquare.png"); sprite.Position = origin + size.Center; AddChild(sprite, 10); // Make sprite1 touchable var listener1 = new CCEventListenerTouchOneByOne (); listener1.IsSwallowTouches = true; listener1.OnTouchBegan = (touch, touchEvent) => { var target = (CCSprite) touchEvent.CurrentTarget; var locationInNode = target.Layer.ScreenToWorldspace(touch.LocationOnScreen); var s = target.ContentSize; var rect = new CCRect(0, 0, s.Width, s.Height); 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; target.Position += touch.Delta; }; listener1.OnTouchEnded = (touch, touchEvent) => { var target = (CCSprite) touchEvent.CurrentTarget; CCLog.Log("sprite onTouchesEnded.. "); target.Opacity = 255; }; sprite.AddEventListener(listener1); RunActions(new CCDelayTime(5.0f), new CCCallFunc(() => { spriteSaved = true; sprite.RemoveFromParent(); }), new CCDelayTime(5.0f), new CCCallFunc(() => { spriteSaved = false; AddChild(sprite); }) ); }
public override void OnEnter () { base.OnEnter (); CCRect visibleBounds = VisibleBoundsWorldspace; var origin = Layer.VisibleBoundsWorldspace.Origin; var size = Layer.VisibleBoundsWorldspace.Size; var sprite = new CCSprite(TestResource.s_Ball); sprite.Position = origin + size.Center; AddChild(sprite); // Create our Accelerometer Listener var listener = new CCEventListenerAccelerometer(); // We will use Lambda expressions to attach the event process listener.OnAccelerate = (acceleration) => { var ballSize = sprite.ContentSize; var acc = acceleration.Acceleration; var ptNow = sprite.Position; var orientation = Application.CurrentOrientation; //CCLog.Log("Accelerate : X: {0} Y: {1} Z: {2} orientation: {3}", accelerationValue.X, accelerationValue.Y, accelerationValue.Z, orientation ); #if ANDROID || WINDOWS_PHONE8 if (orientation == CCDisplayOrientation.LandscapeRight) { ptNow.X -= (float) acc.X * 9.81f; ptNow.Y -= (float) acc.Y * 9.81f; } else { ptNow.X += (float)acc.X * 9.81f; ptNow.Y += (float)acc.Y * 9.81f; } #else ptNow.X += (float)acc.X * 9.81f; ptNow.Y += (float)acc.Y * 9.81f; #endif ptNow.X = MathHelper.Clamp(ptNow.X, (float)(visibleBounds.Origin.X+ballSize.Width / 2.0), (float)(visibleBounds.Origin.X + visibleBounds.Size.Width - ballSize.Width / 2.0)); ptNow.Y = MathHelper.Clamp(ptNow.Y, (float)(visibleBounds.Origin.Y+ballSize.Height / 2.0), (float)(visibleBounds.Origin.Y + visibleBounds.Size.Height - ballSize.Height / 2.0)); sprite.Position = ptNow; }; // Now we tell the event dispatcher that the sprite is interested in Accelerometer events sprite.AddEventListener(listener); }
public override void OnEnter () { base.OnEnter (); CCRect visibleBounds = Layer.VisibleBoundsWorldspace; var origin = Layer.VisibleBoundsWorldspace.Origin; var size = Layer.VisibleBoundsWorldspace.Size; var sprite1 = new CCSprite("Images/CyanSquare.png"); sprite1.Position = origin + new CCPoint (size.Width / 2, size.Height / 2) + new CCPoint (-80, 80); AddChild(sprite1, 10); var sprite2 = new CCSprite("Images/MagentaSquare.png"); sprite2.Position = origin + new CCPoint (size.Width / 2, size.Height / 2); 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 = target.Layer.ScreenToWorldspace(touch.LocationOnScreen); 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.PreviousLocationOnScreen + touch.Delta; target.Position = target.WorldToParentspace(Layer.ScreenToWorldspace(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.LabelTTF.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 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 follow = new CCFollow(sprite1, new CCRect(0, 0, 3000, 600)); RunAction(follow); sprite1.PositionX = size.Width + 100; sprite1.PositionY = size.Height / 2; // Make sprite1 touchable var listener1 = new CCEventListenerTouchOneByOne(); listener1.IsSwallowTouches = true; listener1.OnTouchBegan = (touch, touchEvent) => { var layerOffset = Layer.PositionWorldspace; var target = (CCSprite)touchEvent.CurrentTarget; var locationInNode = touch.Location; CCRect rect = target.BoundingBoxTransformedToWorld; rect.Origin += layerOffset; 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; }; sprite1.AddEventListener(listener1); }