70 lines
3.3 KiB
C#
Raw Normal View History

2023-10-15 18:14:19 +04:00
using System;
using System.Collections.Generic;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
2023-11-27 23:25:40 +04:00
using AirBomber.Entities;
2023-10-15 18:14:19 +04:00
2023-11-27 23:25:40 +04:00
namespace AirBomber.DrawningObjects
2023-10-15 18:14:19 +04:00
{
2023-11-27 23:25:40 +04:00
public class DrawningAirBomber : DrawningBomber
2023-10-15 18:14:19 +04:00
{
2023-11-27 23:25:40 +04:00
public DrawningAirBomber(int speed, int weight, Color bodycolor, Color dopcolor, bool toplivo, bool rocket, int width, int height) : base(speed, weight, bodycolor, width, height, 160, 185)
2023-10-15 18:14:19 +04:00
{
2023-11-27 23:25:40 +04:00
if (EntityBomber != null)
2023-10-15 18:14:19 +04:00
{
2023-11-27 23:25:40 +04:00
EntityBomber = new EntityAirBomber(speed, weight, bodycolor, dopcolor, toplivo, rocket);
2023-10-15 18:14:19 +04:00
}
}
2023-11-27 23:25:40 +04:00
public override void DrawBomber(Graphics g)
2023-10-15 18:14:19 +04:00
{
2023-11-27 23:25:40 +04:00
if (EntityBomber is not EntityAirBomber airBomber)
2023-10-15 18:14:19 +04:00
{
return;
}
Pen pen = new(Color.Black);
2023-11-27 23:25:40 +04:00
Brush dopcolor = new SolidBrush(airBomber.DopColor);
//отрисовка ракет
if (airBomber.Rocket)
2023-10-15 18:14:19 +04:00
{
GraphicsPath rocket_1 = new GraphicsPath();
rocket_1.AddLine(_startPosX + 70, _startPosY + 35, _startPosX + 80, _startPosY + 25);
rocket_1.AddLine(_startPosX + 80, _startPosY + 25, _startPosX + 80, _startPosY + 45);
rocket_1.CloseFigure();
g.FillPath(dopcolor, rocket_1);
g.DrawPath(Pens.Black, rocket_1);
GraphicsPath rocket_2 = new GraphicsPath();
rocket_2.AddLine(_startPosX + 70, _startPosY + 65, _startPosX + 80, _startPosY + 55);
rocket_2.AddLine(_startPosX + 80, _startPosY + 55, _startPosX + 80, _startPosY + 75);
rocket_2.CloseFigure();
g.FillPath(dopcolor, rocket_2);
g.DrawPath(Pens.Black, rocket_2);
GraphicsPath rocket_3 = new GraphicsPath();
rocket_3.AddLine(_startPosX + 70, _startPosY + 120, _startPosX + 80, _startPosY + 110);
rocket_3.AddLine(_startPosX + 80, _startPosY + 110, _startPosX + 80, _startPosY + 130);
rocket_3.CloseFigure();
g.FillPath(dopcolor, rocket_3);
g.DrawPath(Pens.Black, rocket_3);
GraphicsPath rocket_4 = new GraphicsPath();
rocket_4.AddLine(_startPosX + 70, _startPosY + 150, _startPosX + 80, _startPosY + 140);
rocket_4.AddLine(_startPosX + 80, _startPosY + 140, _startPosX + 80, _startPosY + 160);
rocket_4.CloseFigure();
g.FillPath(dopcolor, rocket_4);
g.DrawPath(Pens.Black, rocket_4);
2023-11-14 22:08:08 +04:00
}
2023-11-27 23:25:40 +04:00
if (airBomber.Toplivo)
{
2023-10-15 18:14:19 +04:00
//отрисовка баков
g.FillRectangle(dopcolor, _startPosX + 82, _startPosY + 5, 8, 10);
g.FillRectangle(dopcolor, _startPosX + 82, _startPosY + 25, 8, 10);
g.FillRectangle(dopcolor, _startPosX + 82, _startPosY + 45, 8, 10);
g.FillRectangle(dopcolor, _startPosX + 82, _startPosY + 130, 8, 10);
g.FillRectangle(dopcolor, _startPosX + 82, _startPosY + 150, 8, 10);
g.FillRectangle(dopcolor, _startPosX + 82, _startPosY + 170, 8, 10);
}
2023-11-27 23:25:40 +04:00
base.DrawBomber(g);
2023-10-15 18:14:19 +04:00
}
}
}