PIbd-21_Krasnikov_Lab1.base/WinFormsApp1/FormMap.cs
2022-11-14 21:25:33 +04:00

91 lines
3.1 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 WinFormsApp1
{
public partial class FormMap : Form
{
private AbstractMap _abstractMap;
public FormMap()
{
InitializeComponent();
_abstractMap = new SimpleMap();
}
//Заполнение информации по объекту
private void SetData(TractorDraw tractor)
{
toolStripStatusLabelSpeed.Text = $"Скорость: {tractor.Tractor.Speed}";
toolStripStatusLabelWeight.Text = $"Вес: {tractor.Tractor.Weight}";
toolStripStatusLabelBodyColor.Text = $"Цвет: {tractor.Tractor.BodyColor.Name}";
pictureBoxTractor.Image = _abstractMap.CreateMap(pictureBoxTractor.Width, pictureBoxTractor.Height,
new DrawningObjectTractor(tractor));
}
//Логика кнопки Создать
private void ButtonCreate_Click(object sender, EventArgs e)
{
Random random = new();
var tractor = new TractorDraw(random.Next(100, 200), random.Next(2500, 5000), Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)));
SetData(tractor);
}
private void ButtonMove_Click(object sender, EventArgs e)
{
//получаем имя кнопки
string name = ((Button)sender)?.Name ?? string.Empty;
Direction dir = Direction.None;
switch (name)
{
case "buttonUp":
dir = Direction.Up;
break;
case "buttonDown":
dir = Direction.Down;
break;
case "buttonLeft":
dir = Direction.Left;
break;
case "buttonRight":
dir = Direction.Right;
break;
}
pictureBoxTractor.Image = _abstractMap?.MoveObject(dir);
}
// Обработка нажатия кнопки "Модификация"
private void buttonCreateModif_Click(object sender, EventArgs e)
{
Random random = new Random();
var _Tractor = new MultiTraktorDraw(random.Next(100, 200), random.Next(2500, 5000),
Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)),
Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)));
SetData(_Tractor);
}
private void comboBoxSelectionMap_SelectedIndexChanged(object sender, EventArgs e)
{
switch (comboBoxSelectionMap.Text)
{
case "Простая карта":
_abstractMap = new SimpleMap();
break;
case "Поле":
_abstractMap = new FieldMap();
break;
}
}
}
}