void HandleInputManagerInstanceTouchDownDetected(object sender, SustainedTouchEventArgs e) { var LastTouchPosition = TouchPosition.Xy; var LastTouchVelocity = TouchVelocity; TouchPosition = e.touchPosition; TouchVelocity = 0.5f*(FMath.Abs(TouchPosition.X - LastTouchPosition.X) + LastTouchVelocity); // Console.WriteLine("Touch Velocity: {0}", TouchVelocity * (TouchPosition.X - TouchStartPosition.X)); bool CapLeft = (AnchorPoints[2].Node == null); bool CapRight = (AnchorPoints[0].Node == null); foreach( AnchorPoint point in AnchorPoints) { if (point.Node == null) { continue; } var v = point.Position; var d = TouchStartPosition.X - TouchPosition.X; if ((d>0 && CapLeft == false) || (d<0 && CapRight == false)) { point.Node.Position = new Vector2(v.X - d, v.Y); } } }
// EVENT HANDLERS -------------------------------------------------------------------- void HandleInputManagerInstanceTouchDownDetected(object sender, SustainedTouchEventArgs e) { if(active) { Knob.Position = new Vector2(this.WorldToLocal(e.touchPosition).X, Knob.Position.Y); if ( Knob.Position.X < 0.0f) { Knob.Position = new Vector2( 0.0f, Knob.Position.Y); } else if (Knob.Position.X > length) { Knob.Position = new Vector2(length, Knob.Position.Y); } } }
void HandleInputManagerInstanceDragDetected(object sender, SustainedTouchEventArgs e) { Dismiss(); }
void HandleInputManagerInstanceTouchDownDetected(object sender, SustainedTouchEventArgs e) { _pressed = false; if(this.getNode().IsWorldPointInsideContentLocalBounds(e.touchPosition) ) { onButtonDown(); _pressed = true; } }