Изменение цвета при столкновении объектов - C#

Узнай цену своей работы

Формулировка задачи:

Есть статичная кнопка, и есть кнопка, которая движется по горизонтали. При соприкосновении фигуры должны поменять цвет. Помогите, пожалуйста, сделать обработку этого столкновения, нашла на форуме такое свойство, но не знаю как применить это для button'ов
Листинг программы
  1. private void InstanceRectangleIntersection(PaintEventArgs e)
  2. {
  3. Rectangle rectangle1 = new Rectangle(50, 50, 200, 100);
  4. Rectangle rectangle2 = new Rectangle(70, 20, 100, 200);
  5. e.Graphics.DrawRectangle(Pens.Black, rectangle1);
  6. e.Graphics.DrawRectangle(Pens.Red, rectangle2);
  7. if (rectangle1.IntersectsWith(rectangle2))
  8. {
  9. rectangle1.Intersect(rectangle2);
  10. if (!rectangle1.IsEmpty)
  11. {
  12. e.Graphics.FillRectangle(Brushes.Green, rectangle1);
  13. }
  14. }
  15. }
Вот сама задача с движением кнопки:
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. namespace lab_1
  11. {
  12. public partial class Form1 : Form
  13. {
  14. int koef = 1;
  15. public Form1()
  16. {
  17. InitializeComponent();
  18. this.Width = 400;
  19. button1.Width = 40;
  20. button1.Left = 40;
  21. button1.BackColor = Color.Gold;
  22. timer1.Interval = 500; // 500 миллисекунд
  23. timer1.Enabled = true;
  24. button1.Click += toolStripButton1_Click;
  25. timer1.Tick += timer1_Tick;
  26. }
  27. private void timer1_Tick(object sender, EventArgs e)
  28. {
  29. if (button1.Left == (this.Width - button1.Width - 10))
  30. {
  31. koef = -1;
  32. }
  33. else if (button1.Left == 0)
  34. {
  35. koef = 1;
  36. }
  37. button1.Left += 10 * koef;
  38. }
  39.  
  40. private void toolStripButton1_Click(object sender, EventArgs e)
  41. {
  42. timer1.Start();
  43. }
  44. private void toolStripButton2_Click(object sender, EventArgs e)
  45. {
  46. timer1.Stop();
  47. }
  48. }
  49. }

Решение задачи: «Изменение цвета при столкновении объектов»

textual
Листинг программы
  1.         private void timer1_Tick(object sender, EventArgs e)
  2.         {
  3.             if (button1.Left == (this.Width - button1.Width - 10))
  4.             {
  5.                 koef = -1;
  6.             }
  7.             else if (button1.Left == 0)
  8.             {
  9.                 koef = 1;
  10.             }
  11.             button1.Left += 10 * koef;
  12.  
  13.             if (button1.Bounds.IntersectsWith(button2.Bounds))
  14.                 button1.BackColor = Color.Red;
  15.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы