public void Draw(string canvasName, Press.Pressed pressed) { double ymin = 7; double ymax = Buttons[canvasName].Canvas.Height - ymin; double hit_y = (ymax - ymin); if (Buttons[canvasName].Polyline.Points.Count == Buttons[canvasName].Canvas.Width) { ButtonData button = Buttons[canvasName]; button.Polyline.Points.Clear(); button.LastPressed = new Point(); Buttons[canvasName] = button; } Point point; Press.DIRECTION where = pressed(controller); if (where == Press.DIRECTION.NONE) { point = new Point(Buttons[canvasName].Polyline.Points.Count, hit_y); } else { point = new Point(Buttons[canvasName].Polyline.Points.Count, hit_y * Press.Direction(where)); ButtonData button = Buttons[canvasName]; if (point.X > button.LastPressed.X + 10) { button.LastPressed = point; } Buttons[canvasName] = button; } if (!Paused) { Buttons[canvasName].Polyline.Points.Add(point); } if (!InputDelayMarkers) { Buttons[canvasName].Label.Text = Press.DirectionString(where); } Buttons[canvasName].Polyline.Stroke = Press.DirectionBrush(where); if (Buttons[canvasName].Canvas.Children.Contains(Buttons[canvasName].Polyline)) { Buttons[canvasName].Canvas.Children.Remove(Buttons[canvasName].Polyline); } Buttons[canvasName].Canvas.Children.Add(Buttons[canvasName].Polyline); }
public static string DirectionString(Press.DIRECTION where) { switch (where) { case Press.DIRECTION.UP: return("Up"); case Press.DIRECTION.DOWN: return("Down"); case Press.DIRECTION.LEFT: return("Left"); case Press.DIRECTION.RIGHT: return("Right"); case Press.DIRECTION.PRESSED: return("Pressed"); } return("Waiting..."); }
public static double Direction(Press.DIRECTION where) { return(DirectionHit[(int)Math.Sqrt((int)where)]); }