97 lines
3.3 KiB
C#
Raw 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 Airbus
{
public partial class FormMap : Form
{
private AbstractMap _abstractMap;
public FormMap()
{
InitializeComponent();
_abstractMap = new SimpleMap();
}
//заполнение информации по объекту
private void SetData(DrawningAirbus airbus)
{
toolStripStatusLabelSpeed.Text = $"Скорость: {airbus.Airbus?.Speed}";
toolStripStatusLabelWeight.Text = $"Вес: {airbus.Airbus?.Weight}";
toolStripStatusLabelCorpusColor.Text = $"Цвет: {airbus.Airbus?.CorpusColor.Name}";
pictureBoxAirbus.Image = _abstractMap.CreateMap(pictureBoxAirbus.Width, pictureBoxAirbus.Height,
new DrawningObjectAirbus(airbus));
}
//обработка нажатия кнопки "Создать"
private void ButtonCreate_Click(object sender, EventArgs e)
{
Random rnd = new();
var airbus = new DrawningAirbus(rnd.Next(100, 300), rnd.Next(1000, 2000),
Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)));
SetData(airbus);
}
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;
}
pictureBoxAirbus.Image = _abstractMap?.MoveObject(dir);
}
//обработка нажития кнопки "Модификация"
private void ButtonCreateModif_Click(object sender, EventArgs e)
{
Random rnd = new();
var airbus = new DrawningSuperAirbus(rnd.Next(100, 300), rnd.Next(1000, 2000),
Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)),
Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)),
Convert.ToBoolean(rnd.Next(0, 2)), Convert.ToBoolean(rnd.Next(0, 2)));
SetData(airbus);
}
private void ComboBoxSelectorMap_SelectedIndexChanged(object sender, EventArgs e)
{
switch (comboBoxSelectorMap.Text)
{
case "Простая карта":
_abstractMap = new SimpleMap();
break;
case "Буря в пустыне":
_abstractMap = new SecondSimpleMap();
break;
case "Звёздные войны":
_abstractMap = new ThirdSimpleMap();
break;
}
}
}
}