123 lines
4.6 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;
private SecondVersionAbstractMap _secondAbstractMap;
private ThirdVersionAbstractMap _thirdVersionAbstractMap;
public FormMap()
{
InitializeComponent();
_abstractMap = new SimpleMap();
_secondAbstractMap = new SecondSimpleMap();
}
//заполнение информации по объекту
private void SetData(DrawningAirbus airbus)
{
toolStripStatusLabelSpeed.Text = $"Скорость: {airbus.Airbus?.Speed}";
toolStripStatusLabelWeight.Text = $"Вес: {airbus.Airbus?.Weight}";
toolStripStatusLabelCorpusColor.Text = $"Цвет: {airbus.Airbus?.CorpusColor.Name}";
if (comboBoxSelectorMap.Text == "Простая карта")
{
pictureBoxAirbus.Image = _abstractMap.CreateMap(pictureBoxAirbus.Width, pictureBoxAirbus.Height,
new DrawningObjectAirbus(airbus));
}
if (comboBoxSelectorMap.Text == "Буря в пустыне")
{
pictureBoxAirbus.Image = _secondAbstractMap.CreateMap(pictureBoxAirbus.Width, pictureBoxAirbus.Height,
new DrawningObjectAirbus(airbus));
}
if (comboBoxSelectorMap.Text == "Звёздные войны")
{
pictureBoxAirbus.Image = _thirdVersionAbstractMap.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;
}
if (comboBoxSelectorMap.Text == "Простая карта")
{
pictureBoxAirbus.Image = _abstractMap?.MoveObject(dir);
}
if (comboBoxSelectorMap.Text == "Буря в пустыне")
{
pictureBoxAirbus.Image = _secondAbstractMap?.MoveObject(dir);
}
if (comboBoxSelectorMap.Text == "Звёздные войны")
{
pictureBoxAirbus.Image = _thirdVersionAbstractMap?.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 "Буря в пустыне":
_secondAbstractMap = new SecondSimpleMap();
break;
case "Звёздные войны":
_thirdVersionAbstractMap = new ThirdSimpleMap();
break;
}
}
}
}