private void DrawSingleElement(VisualizerInterface Visualizer, int index) { float angle = 360 / ElementCount * index + Offset; Vector2 elementPosition = new Vector2( Center.X + (float)Math.Cos(GetRadiant(angle)) * Radius, Center.Y + (float)Math.Sin(GetRadiant(angle)) * Radius); Visualizer.DrawCircle(ElementSize, elementPosition, AnimationColor); }
private void DrawSingleElementChanging(VisualizerInterface Visualizer, int index, AnimationChange change) { int colorChange = 255 - (int)(255F / change.AngleDuration * change.OffsetSinceStart); if (AnimationState == State.Success) { AnimationColor = new Color(colorChange, 255, colorChange); } else if (AnimationState == State.Error) { AnimationColor = new Color(255, colorChange, colorChange); } DrawSingleElement(Visualizer, index); }
public override void Draw(VisualizerInterface Visualizer) { Center = Visualizer.GetCenter(); for (int i = 0; i < ElementCount; i++) { if (AnimationState != State.Waiting && _animationChange != null && _animationChange.StartReached) { DrawSingleElementChanging(Visualizer, i, _animationChange); } else { DrawSingleElement(Visualizer, i); } } }
public override void Draw(VisualizerInterface visualizer) { if (!PlayersCentered) { Center.X = visualizer.GetCenter().X; Initialize(); PlayersCentered = true; } //int ballRadius = 6; //float BallPosX = BallPosition.X - ballRadius; //float BallPosY = BallPosition.Y - ballRadius; //SpriteBatchMain.Draw(BallTexture, new Rectangle(BallPosX, BallPosY, BallRadius * 2, BallRadius * 2), Color.Black); visualizer.DrawCircle(BallRadius, BallPosition, Color.Black); visualizer.DrawRectangle(PlayerLeft, Color.Black); visualizer.DrawRectangle(PlayerRight, Color.Black); }
public abstract void Draw(VisualizerInterface visualizer);