почти done
This commit is contained in:
parent
f5d9e89692
commit
842e5a8ca4
@ -30,9 +30,9 @@ namespace Monorail.DrawningObjects
|
||||
|
||||
protected int _startPosY = 0;
|
||||
|
||||
protected int _monoRailWidth = 133;
|
||||
protected int _monoRailWidth = 110;
|
||||
|
||||
protected int _monoRailHeight = 50;
|
||||
protected int _monoRailHeight = 60;
|
||||
|
||||
protected int wheelSz;
|
||||
public DrawningMonorail(int speed, double weight, Color bodyColor, Color wheelColor, Color tireColor, int width, int height)
|
||||
@ -122,92 +122,53 @@ DrawningObjectMonorail(this);
|
||||
Pen tirePen = new Pen(EntityMonorail.TireColor);
|
||||
if (_monoRailWidth - _monoRailWidth / 20 * 17 < wheelSz)
|
||||
wheelSz = _monoRailWidth - _monoRailWidth / 20 * 17;
|
||||
g.DrawEllipse(pen, _startPosX + 15, _startPosY + 5, 20, 20);
|
||||
g.DrawEllipse(pen, _startPosX + 15, _startPosY + 35, 20, 20);
|
||||
g.DrawRectangle(pen, _startPosX + 9, _startPosY + 15, 10, 30);
|
||||
g.DrawRectangle(pen, _startPosX + 90, _startPosY + 15, 10,
|
||||
30);
|
||||
g.DrawRectangle(pen, _startPosX + 20, _startPosY + 4, 70, 52);
|
||||
|
||||
Point[] pointsArrLow = { new Point(_startPosX + _monoRailWidth / 10 * 4, _startPosY + _monoRailHeight / 5 * 2),
|
||||
new Point(_startPosX + _monoRailWidth / 10, _startPosY + _monoRailHeight / 5 * 2),
|
||||
new Point(_startPosX + _monoRailWidth / 10, _startPosY + _monoRailHeight / 10 * 7),
|
||||
new Point(_startPosX + _monoRailWidth / 20 * 19, _startPosY + _monoRailHeight / 10 * 7),
|
||||
new Point(_startPosX + _monoRailWidth / 20 * 19, _startPosY + _monoRailHeight / 5 * 2),
|
||||
new Point(_startPosX + _monoRailWidth / 10 * 5, _startPosY + _monoRailHeight / 5 * 2),
|
||||
new Point(_startPosX + _monoRailWidth / 10 * 4, _startPosY + _monoRailHeight / 5 * 2)};
|
||||
//если есть доп.фонари
|
||||
/* if (Cruiser.Headlights)
|
||||
{
|
||||
|
||||
g.FillPolygon(bodyBrush, pointsArrLow);
|
||||
g.DrawPolygon(pen, pointsArrLow);
|
||||
Brush brYellow = new SolidBrush(Color.Yellow);
|
||||
g.FillEllipse(brYellow, _startPosX + 80, _startPosY + 5, 20,
|
||||
20);
|
||||
g.FillEllipse(brYellow, _startPosX + 80, _startPosY + 35, 20,
|
||||
20);
|
||||
}*/
|
||||
//основание лодки!!!
|
||||
Brush br = new SolidBrush(EntityMonorail.BodyColor);
|
||||
g.FillRectangle(br, _startPosX + 10, _startPosY + 15, 10, 30);
|
||||
g.FillRectangle(br, _startPosX + 90, _startPosY + 15, 10, 30);
|
||||
g.FillRectangle(br, _startPosX + 20, _startPosY + 5, 70, 50);
|
||||
Point[] points = new Point[3];// нос лодки
|
||||
points[0] = new Point(_startPosX + 100, _startPosY + 5);
|
||||
points[1] = new Point(_startPosX + 100, _startPosY + 55);
|
||||
points[2] = new Point(_startPosX + 100 + 50, _startPosY + 50 / 2);
|
||||
g.FillPolygon(Brushes.Pink, points);
|
||||
//границы носа лодки
|
||||
Point[] points1 = new Point[3];// нос лодки
|
||||
points1[0] = new Point(_startPosX + 100, _startPosY + 5);
|
||||
points1[1] = new Point(_startPosX + 100, _startPosY + 55);
|
||||
points1[2] = new Point(_startPosX + 100 + 50, _startPosY + 50 / 2);
|
||||
g.DrawPolygon(pen, points1);
|
||||
g.FillRectangle(Brushes.Black, _startPosX + 5, _startPosY + 15, 10, 10);
|
||||
g.FillRectangle(Brushes.Black, _startPosX + 5, _startPosY + 35, 10, 10);
|
||||
|
||||
//если есть ракетные шахты, добавить условие
|
||||
g.DrawRectangle(Pens.Black, _startPosX + 35,
|
||||
_startPosY + 23, 15, 15);
|
||||
g.DrawRectangle(Pens.Black, _startPosX + 50,
|
||||
_startPosY + 19, 30, 25);
|
||||
|
||||
|
||||
|
||||
|
||||
//крыша локомотива
|
||||
Point[] pointsArrRoof = { new Point(_startPosX + _monoRailWidth / 10, _startPosY + _monoRailHeight / 5 * 2),
|
||||
new Point(_startPosX + _monoRailWidth / 10 * 2, _startPosY + _monoRailHeight / 10),
|
||||
new Point(_startPosX + _monoRailWidth /20 * 19, _startPosY + _monoRailHeight / 10),
|
||||
new Point(_startPosX + _monoRailWidth /20 * 19, _startPosY + _monoRailHeight / 5 * 2),
|
||||
new Point(_startPosX + _monoRailWidth / 10, _startPosY + _monoRailHeight / 5 * 2)};
|
||||
g.FillPolygon(bodyBrush, pointsArrRoof);
|
||||
g.DrawPolygon(pen, pointsArrRoof);
|
||||
|
||||
//дверь локомотива
|
||||
Point[] pointsArrDoor = { new Point(_startPosX + _monoRailWidth / 10 * 4, _startPosY + _monoRailHeight / 5 * 2),
|
||||
new Point(_startPosX + _monoRailWidth / 10 * 4, _startPosY + _monoRailHeight / 5),
|
||||
new Point(_startPosX + _monoRailWidth / 10 * 5, _startPosY + _monoRailHeight / 5),
|
||||
new Point(_startPosX + _monoRailWidth / 10 * 5, _startPosY + _monoRailHeight / 5 * 3),
|
||||
new Point(_startPosX + _monoRailWidth / 10 * 4, _startPosY + _monoRailHeight / 5 * 3) };
|
||||
g.DrawPolygon(pen, pointsArrDoor);
|
||||
g.FillPolygon(cartBrush, pointsArrDoor);
|
||||
|
||||
|
||||
//передняя часть тележки
|
||||
Point[] pointsArrFrontCart = { new Point(_startPosX + _monoRailWidth / 10 * 4, _startPosY + _monoRailHeight / 10 * 7),
|
||||
new Point(_startPosX + _monoRailWidth / 10 * 2, _startPosY + _monoRailHeight / 10 * 7),
|
||||
new Point(_startPosX, _startPosY + _monoRailHeight / 10 * 9),
|
||||
new Point(_startPosX + _monoRailWidth / 10 * 4, _startPosY + _monoRailHeight / 10 * 9),
|
||||
new Point(_startPosX + _monoRailWidth / 10 * 4, _startPosY + _monoRailHeight / 10 * 7)};
|
||||
|
||||
g.FillPolygon(cartBrush, pointsArrFrontCart);
|
||||
|
||||
//задняя часть тележки
|
||||
Point[] pointsArrBackCart = { new Point(_startPosX + _monoRailWidth / 10 * 6, _startPosY + _monoRailHeight / 10 * 7),
|
||||
new Point(_startPosX + _monoRailWidth / 10 * 9, _startPosY + _monoRailHeight / 10 * 7),
|
||||
new Point(_startPosX + _monoRailWidth, _startPosY + _monoRailHeight / 10 * 9),
|
||||
new Point(_startPosX + _monoRailWidth / 10 * 6, _startPosY + _monoRailHeight / 10 * 9)
|
||||
};
|
||||
|
||||
g.FillPolygon(cartBrush, pointsArrBackCart);
|
||||
|
||||
//левое окно
|
||||
Rectangle leftRect = new();
|
||||
leftRect.X = _startPosX + _monoRailWidth / 10 * 2;
|
||||
leftRect.Y = _startPosY + _monoRailHeight / 25 * 4;
|
||||
leftRect.Width = _monoRailWidth / 120 * 8;
|
||||
leftRect.Height = _monoRailHeight / 50 * 10;
|
||||
g.DrawRectangle(windowPen, leftRect);
|
||||
g.FillRectangle(windowBrush, leftRect);
|
||||
|
||||
//среднее окно
|
||||
Rectangle midRect = new();
|
||||
midRect.X = _startPosX + _monoRailWidth / 10 * 3;
|
||||
midRect.Y = _startPosY + _monoRailHeight / 25 * 4;
|
||||
midRect.Width = _monoRailWidth / 120 * 8;
|
||||
midRect.Height = _monoRailHeight / 50 * 10;
|
||||
g.DrawRectangle(windowPen, midRect);
|
||||
g.FillRectangle(windowBrush, midRect);
|
||||
|
||||
//правое окно
|
||||
Rectangle rightRect = new();
|
||||
rightRect.X = _startPosX + _monoRailWidth / 20 * 17;
|
||||
rightRect.Y = _startPosY + _monoRailHeight / 25 * 4;
|
||||
rightRect.Width = _monoRailWidth / 120 * 8;
|
||||
rightRect.Height = _monoRailHeight / 50 * 10;
|
||||
g.DrawRectangle(windowPen, rightRect);
|
||||
g.FillRectangle(windowBrush, rightRect);
|
||||
|
||||
g.FillEllipse(wheelBrush, _startPosX + _monoRailWidth / 10, _startPosY + _monoRailHeight / 10 * 7, wheelSz, wheelSz);
|
||||
g.DrawEllipse(tirePen, _startPosX + _monoRailWidth / 10, _startPosY + _monoRailHeight / 10 * 7, wheelSz, wheelSz);
|
||||
g.FillEllipse(wheelBrush, _startPosX + _monoRailWidth / 10 * 8, _startPosY + _monoRailHeight / 10 * 7, wheelSz, wheelSz);
|
||||
g.DrawEllipse(tirePen, _startPosX + _monoRailWidth / 10 * 8, _startPosY + _monoRailHeight / 10 * 7, wheelSz, wheelSz);
|
||||
|
||||
|
||||
_monoRailWidth += dif;
|
||||
// _monoRailWidth += dif;
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -37,43 +37,30 @@ namespace Monorail.DrawningObjects
|
||||
Brush additionalBrush = new SolidBrush(advancedMonorail.AdditionalColor);
|
||||
|
||||
//3 колеса
|
||||
if (advancedMonorail.AddWheelsNumb >= 3)
|
||||
/* if (advancedMonorail.AddWheelsNumb >= 3)
|
||||
{
|
||||
g.FillEllipse(additionalBrush, _startPosX + _monoRailWidth / 10 * 6, _startPosY + _monoRailHeight / 10 * 7, wheelSz, wheelSz);
|
||||
g.DrawEllipse(additionalPen, _startPosX + _monoRailWidth / 10 * 6, _startPosY + _monoRailHeight / 10 * 7, wheelSz, wheelSz);
|
||||
}
|
||||
|
||||
//4 колеса
|
||||
|
||||
if (advancedMonorail.AddWheelsNumb >= 4)
|
||||
{
|
||||
g.FillEllipse(additionalBrush, _startPosX + _monoRailWidth / 10 * 3, _startPosY + _monoRailHeight / 10 * 7, wheelSz, wheelSz);
|
||||
g.DrawEllipse(additionalPen, _startPosX + _monoRailWidth / 10 * 3, _startPosY + _monoRailHeight / 10 * 7, wheelSz, wheelSz);
|
||||
}
|
||||
}*/
|
||||
|
||||
if (advancedMonorail.SecondCabine)
|
||||
{
|
||||
Point[] pointsSecondCabine = { new Point(_startPosX + _monoRailWidth / 20 * 19, _startPosY + _monoRailHeight / 10),
|
||||
new Point(_startPosX + _monoRailWidth + dif, _startPosY + _monoRailHeight / 5 * 2),
|
||||
new Point(_startPosX + _monoRailWidth + dif, _startPosY + _monoRailHeight / 10 * 7),
|
||||
new Point(_startPosX + _monoRailWidth / 20 * 19, _startPosY + _monoRailHeight / 10 * 7),};
|
||||
g.FillPolygon(additionalBrush, pointsSecondCabine);
|
||||
g.DrawPolygon(additionalPen, pointsSecondCabine);
|
||||
Rectangle Rect = new();
|
||||
Rect.X = _startPosX + _monoRailWidth / 20 * 19;
|
||||
Rect.Y = _startPosY + _monoRailHeight / 25 * 4 + _monoRailHeight / 50 * 3;
|
||||
Rect.Width = _monoRailWidth / 120 * 6;
|
||||
Rect.Height = _monoRailHeight / 50 * 7;
|
||||
g.DrawRectangle(windowPen, Rect);
|
||||
g.FillRectangle(windowBrush, Rect);
|
||||
}
|
||||
Brush brYellow = new SolidBrush(Color.Yellow);
|
||||
g.FillEllipse(brYellow, _startPosX + 80, _startPosY + 5, 20,
|
||||
20);
|
||||
g.FillEllipse(brYellow, _startPosX + 80, _startPosY + 35, 20,
|
||||
20);
|
||||
_monoRailWidth += dif;
|
||||
//магнитная линия
|
||||
if (advancedMonorail.MagniteRail)
|
||||
{
|
||||
g.DrawLine(additionalPen, new Point(_startPosX, _startPosY + _monoRailHeight - 1), new Point(_startPosX + _monoRailWidth, _startPosY + _monoRailHeight - 1));
|
||||
g.FillEllipse(Brushes.Green, _startPosX + 90, _startPosY + 20, 20, 20);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -89,8 +89,9 @@ pos)
|
||||
if (monorail != null)
|
||||
{
|
||||
int inRow = _pictureWidth / _placeSizeWidth;
|
||||
//monorail.SetPosition(i % inRow * _placeSizeWidth, _pictureHeight - _pictureHeight % _placeSizeHeight - (i / inRow + 1) * _placeSizeHeight);
|
||||
monorail.SetPosition((i % inRow) * _placeSizeWidth + _placeSizeWidth / 20, _placeSizeHeight * (i / inRow) + _placeSizeHeight / 10); ;
|
||||
// monorail.SetPosition(i % inRow * _placeSizeWidth, _pictureHeight - _pictureHeight % _placeSizeHeight - (i / inRow + 1) * _placeSizeHeight + 5);
|
||||
monorail.SetPosition((i % inRow) * _placeSizeWidth + _placeSizeWidth / 50, _placeSizeHeight * (i / inRow) + _placeSizeHeight / 20);
|
||||
|
||||
monorail.DrawTransport(g);
|
||||
}
|
||||
i++;
|
||||
|
Loading…
Reference in New Issue
Block a user