2022-11-24 02:08:47 +04:00

145 lines
5.2 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(DrawningAirplane airplane)
{
toolStripStatusLabelSpeed.Text = $"Скорость: {airplane.airplane?.Speed}";
toolStripStatusLabelWight.Text = $"Вес: {airplane.airplane?.Weight}";
toolStripStatusLabelColor.Text = $" : {airplane.airplane?.BodyColor}";
pictureBox.Image = _abstractMap.CreateMap(pictureBox.Width, pictureBox.Height, new DrawningObjectAirplane(airplane));
}
private void buttonCreate_Click(object sender, EventArgs e)
{
IPorthole formPorthole = new DrawningPorthole();
switch (comboBoxFormPorthole.Text)
{
case "Обычные":
formPorthole = new DrawningPorthole();
break;
case "Крадратные":
formPorthole = new DrawingSquarePorthole();
break;
case "Ромбом":
formPorthole = new DrawingRhombPorthole();
break;
}
Random random = new Random();
var airbus = new DrawningAirplane(random.Next(100, 300), random.Next(1000, 3000), Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)), formPorthole);
CountPorthole count_porthole = CountPorthole.Ten;
switch (comboBoxPortholeSer.Text)
{
case "10":
count_porthole = CountPorthole.Ten;
break;
case "20":
count_porthole = CountPorthole.Twenty;
break;
case "30":
count_porthole = CountPorthole.Thirty;
break;
}
airbus.Upd_count_Porthole(count_porthole);
SetData(airbus);
}
private void ButtonMove_Click(object sender, EventArgs e)
{
string name = ((Button)sender)?.Name ?? string.Empty;
Direction direction = Direction.None;
switch (name)
{
case "buttonLeft":
direction = Direction.Left;
break;
case "buttonUp":
direction = Direction.Up;
break;
case "buttonRight":
direction = Direction.Right;
break;
case "buttonDown":
direction = Direction.Down;
break;
}
pictureBox.Image = _abstractMap?.MoveObject(direction);
}
private void buttonModCreate_Click(object sender, EventArgs e)
{
IPorthole formPorthole = new DrawningPorthole();
switch (comboBoxFormPorthole.Text)
{
case "Обычные":
formPorthole = new DrawningPorthole();
break;
case "Крадратные":
formPorthole = new DrawingSquarePorthole();
break;
case "Ромбом":
formPorthole = new DrawingRhombPorthole();
break;
}
Random random = new Random();
var airbus = new DrawingAirbus(random.Next(100, 300), random.Next(1000, 3000),
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)),
true, true, formPorthole);
CountPorthole count_porthole = CountPorthole.Ten;
switch (comboBoxPortholeSer.Text)
{
case "10":
count_porthole = CountPorthole.Ten;
toolStripStatusLabelSpeed.Text = Convert.ToString((int)count_porthole);
break;
case "20":
count_porthole = CountPorthole.Twenty;
break;
case "30":
count_porthole = CountPorthole.Thirty;
break;
}
airbus.Upd_count_Porthole(count_porthole);
SetData(airbus);
}
private void comboBoxSelectorMap_SelectedIndexChanged(object sender, EventArgs e)
{
switch (comboBoxSelectorMap.Text)
{
case "Первая карта":
_abstractMap = new SimpleMap();
break;
case "Вторая карта":
_abstractMap = new SecondMap();
break;
case "Третья карта":
_abstractMap = new ThirdMap();
break;
}
}
}
}