Движение объекта на panel. Изменение направления при нажатии кнопки - C#

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

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

Дело такое, есть круг, при нажатии кнопки "Старт" он начинает двигаться на право, и при этом у него цвет ЗЕЛЕНЫЙ, при нажатии "Стоп" он останавливается. Это я реализовал. Теперь мне нужно сделать так, что если я нажму на кнопку "Налево" то круг с того же места где он остановился начинает движение налево, при этом его цвет меняется на КРАСНЫЙ. ВОТ это FORM1.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace Dinamic
{
    public partial class Form1 : Form
    {
        Class1 cl = new Class1();
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            if(timer1.Enabled)
            {
                timer1.Enabled = false;
                button1.Text = "Старт";
            }
            else
            {
                timer1.Enabled = true;
                button1.Text = "Стоп";
            }
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            cl.move(panel1);
        }
 
        private void panel1_Paint(object sender, PaintEventArgs e)
        {
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
        }
    }
}
А вот Class1
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace Dinamic
{
    class Class1
    {
        public float x, y, k;
        public void Clear(Panel panel1)
        {
            Graphics g = panel1.CreateGraphics();
            g.Clear(SystemColors.Control);
        }
        public void move(Panel panel1)
        {
            Clear(panel1); 
            x++;
            Graphics g = panel1.CreateGraphics();
            Pen p = new Pen(Color.Black);
            g.DrawEllipse(p, 200 + x, 230, 40, 40);
            g.FillEllipse(Brushes.Blue, 200 + x, 230, 40, 40);
            if (x>350)
            {
                x--;
            }
        }
    }
}

Решение задачи: «Движение объекта на panel. Изменение направления при нажатии кнопки»

textual
Листинг программы
public partial class Form1 : Form
    {
        Class1 cl = new Class1();
        bool first = true;
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            if(timer1.Enabled)
            {
                timer1.Enabled = false;
                button1.Text = "Старт";
                first = !first;
            }
            else
            {
                timer1.Enabled = true;
                button1.Text = "Стоп";
                
            }
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            cl.move(panel1,first);
        }

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

11   голосов , оценка 3.818 из 5
Похожие ответы