public MainWindow() { InitializeComponent(); center = new Point(Canvas.Width / 2, Canvas.Height / 2); playerPlatform = new PlayerPlatform(center); ball = new Ball(playerPlatform.radius, center); SetBackground(Color.LightSeaGreen); SetBackgroundMainMenu(Color.LightSeaGreen); enemies1 = new Enemies(7, 50, new Pen(new SolidBrush(Color.FromArgb(200, 255, 186, 2)), 25), center, true, (float)0.2, 7); enemies2 = new Enemies(4, 90, new Pen(new SolidBrush(Color.FromArgb(200, 217, 68, 48)), 20), center, false, (float)0.3, 5); enemies3 = new Enemies(8, 120, new Pen(new SolidBrush(Color.FromArgb(200, 23, 109, 237)), 22), center, true, (float)0.4, 4); enemies4 = new Enemies(10, 145, new Pen(new SolidBrush(Color.FromArgb(200, 0, 155, 87)), 16), center, false, (float)0.5, 1); ball.speed = 3; playerPlatform.sweepAngle = 40; colorScheme = new ColorScheme(ColourScheme, new[] { Color.LightSeaGreen, Color.FromArgb(114, 34, 114), Color.FromArgb(67, 67, 170), Color.FromArgb(201, 68, 68), Color.FromArgb(34, 102, 34), Color.Firebrick, Color.FromArgb(39, 28, 39), Color.FromArgb(99, 55, 99), Color.Beige, Color.FromArgb(21, 21, 66), Color.FromArgb(44, 120, 120), Color.FromArgb(187, 187, 92), Color.FromArgb(166, 166, 212), Color.FromArgb(32, 189, 189), Color.FromArgb(200, 200, 40), Color.FromArgb(77, 77, 46), Color.FromArgb(190, 55, 55), Color.FromArgb(58, 58, 185), Color.FromArgb(112, 62, 62), Color.FromArgb(54, 54, 60)}); colorScheme.Draw(ColourScheme.CreateGraphics()); }
public void Draw(Graphics g, Ball ball) { foreach (Enemy enemy in enemies) { enemy.Draw(g); } }
public void Update(Ball ball) { startAngle = clockWise ? MainWindow.AngleTo360DegreeSystem(startAngle + angleShift) : MainWindow.AngleTo360DegreeSystem(startAngle - angleShift); middleAngle = MainWindow.AngleTo360DegreeSystem(startAngle + sweepAngle / 2); //CheckIntersect(ball); if ((int)(MainWindow.AngleTo360DegreeSystem(startAngle + sweepAngle) - MainWindow.AngleTo360DegreeSystem(startAngle)) == (int)sweepAngle || (int)(MainWindow.AngleTo360DegreeSystem(startAngle + sweepAngle) - MainWindow.AngleTo360DegreeSystem(startAngle)) == (int)sweepAngle - 1) { if (ball.locationRadius <= radius + pen.Width / 2 + ball.diametr / 2 && ball.locationRadius >= radius && ball.movingAngle > startAngle && ball.movingAngle < MainWindow.AngleTo360DegreeSystem(startAngle + sweepAngle)) { ball.speed *= -1; ball.angle = ball.movingAngle; ball.shiftAngle *= -4; intersectedWithBall = true; } else if (ball.locationRadius + ball.diametr / 2 >= radius - pen.Width / 2 && ball.locationRadius + ball.diametr / 2 < radius && ball.movingAngle > startAngle && ball.movingAngle < MainWindow.AngleTo360DegreeSystem(startAngle + sweepAngle)) { ball.speed *= -1; ball.shiftAngle *= -4; intersectedWithBall = true; } } else { if (ball.locationRadius <= radius + pen.Width / 2 + ball.diametr / 2 && ball.locationRadius >= radius && AngleToOver360DegreeSystem(ball.movingAngle, MainWindow.AngleTo360DegreeSystem(startAngle + sweepAngle)) > startAngle && AngleToOver360DegreeSystem(ball.movingAngle, MainWindow.AngleTo360DegreeSystem(startAngle + sweepAngle)) < startAngle + sweepAngle) { ball.speed *= -1; ball.angle = ball.movingAngle; ball.shiftAngle *= -4; intersectedWithBall = true; } else if (ball.locationRadius + ball.diametr / 2 >= radius - pen.Width / 2 && ball.locationRadius + ball.diametr / 2 < radius && AngleToOver360DegreeSystem(ball.movingAngle, MainWindow.AngleTo360DegreeSystem(startAngle + sweepAngle)) > startAngle && AngleToOver360DegreeSystem(ball.movingAngle, MainWindow.AngleTo360DegreeSystem(startAngle + sweepAngle)) < startAngle + sweepAngle) { ball.speed *= -1; ball.angle = ball.movingAngle; ball.shiftAngle *= 2; intersectedWithBall = true; } } }
public void Update(Ball ball) { foreach (Enemy enemy in enemies) { enemy.Update(ball); } for (int i = 0; i < enemies.Count; i++) { if (enemies[i].intersectedWithBall) { enemies.RemoveAt(i); MainWindow.score += 1; } } }