private void CanvasPaint(object Sender, PaintEventArgs Event) { foreach (Shape SelectedShape in ShapesDrawn) { SelectedShape.SetGraphics(Event.Graphics); SelectedShape.Draw(); } }
/// Drawing public static void DrawShapes(SpriteBatch spriteBatch) { // sort shapes with comparer for drawing (comparer sorts on isSnapped then timeIdle) List <Shape> shapes = new List <Shape>(CurrentPuzzleSet.ShapesDict.Values); shapes.Sort(new ShapeSnapAgeComparer()); if (CurrentPuzzle.IsCleared) { for (int i = 0; i < shapes.Count; i++) { if (shapes[i].State == Shape.ShapeState.Dropped || shapes[i].State == Shape.ShapeState.TransitionOut) { shapes[i].Draw(spriteBatch, Color.White, false); } } } else if (IsAShapeSelected) { // draw dropped shapes and shapes transitioning off for (int i = 0; i < shapes.Count; i++) { if (shapes[i].State == Shape.ShapeState.Dropped || shapes[i].State == Shape.ShapeState.TransitionOut || shapes[i].State == Shape.ShapeState.TransitionInAfterHint || shapes[i].State == Shape.ShapeState.TransitionOutForHint || shapes[i].State == Shape.ShapeState.WaitOnHint) { shapes[i].Draw(spriteBatch, Color.White, false); } } // apply an effect to selected texture here SelectedShape.Draw(spriteBatch, Color.White, true); } else { // draw dropped shapes and shapes transitioning off int selectedCogShapeKey = MainScreen.PuzzlePanel.SelectedShapeKey; for (int i = 0; i < shapes.Count; i++) { if (shapes[i].State == Shape.ShapeState.Dropped || shapes[i].State == Shape.ShapeState.TransitionOut || shapes[i].State == Shape.ShapeState.TransitionInAfterHint || shapes[i].State == Shape.ShapeState.TransitionOutForHint || shapes[i].State == Shape.ShapeState.WaitOnHint) { if (shapes[i].Key == selectedCogShapeKey && (shapes[i].State != Shape.ShapeState.TransitionInAfterHint && shapes[i].State != Shape.ShapeState.TransitionOutForHint && shapes[i].State != Shape.ShapeState.WaitOnHint)) { shapes[i].Draw(spriteBatch, Color.White, true); } else // if (shapes[i].State == Shape.ShapeState.TransitionOut) { shapes[i].Draw(spriteBatch, Color.White, false); // shapes[i].Draw(spriteBatch, Color.White, 1f, 1f); } } } } if (MainScreen.PuzzlePanel.PanelState == PuzzlePanel.PuzzlePanelState.Hint) { hintManager.Draw(spriteBatch); } }