Коммит в конце пары
This commit is contained in:
parent
e745eb8c98
commit
e5918ae56f
11
Traktor/Traktor/Direction.cs
Normal file
11
Traktor/Traktor/Direction.cs
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
namespace Traktor
|
||||||
|
{
|
||||||
|
//Направление перемещения
|
||||||
|
internal enum Direction
|
||||||
|
{
|
||||||
|
Up = 1,
|
||||||
|
Down = 2,
|
||||||
|
Left = 3,
|
||||||
|
Right = 4
|
||||||
|
}
|
||||||
|
}
|
31
Traktor/Traktor/EntityTraktor.cs
Normal file
31
Traktor/Traktor/EntityTraktor.cs
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Traktor
|
||||||
|
{
|
||||||
|
|
||||||
|
//Класс-сущности "Трактор"
|
||||||
|
|
||||||
|
internal class EntityTraktor
|
||||||
|
{
|
||||||
|
//Скорость
|
||||||
|
public int Speed { get; private set; }
|
||||||
|
//Вес
|
||||||
|
public float Weight { get; private set; }
|
||||||
|
//Цвет кузова
|
||||||
|
public Color BodyColor { get; private set; }
|
||||||
|
//Шаг перемещения трактора
|
||||||
|
public float Step => Speed * 100 / Weight;
|
||||||
|
|
||||||
|
public void Init(int speed, float weight, Color bodycolor)
|
||||||
|
{
|
||||||
|
Random rnd = new Random();
|
||||||
|
Speed = speed <= 0 ? rnd.Next(50, 150) : speed;
|
||||||
|
Weight = weight <= 0 ? rnd.Next(40, 70) : weight;
|
||||||
|
BodyColor = bodycolor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
105
Traktor/Traktor/TraktorDraw.cs
Normal file
105
Traktor/Traktor/TraktorDraw.cs
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Traktor
|
||||||
|
{
|
||||||
|
// Класс, отвечающий за прорисовку и перемещение объекта-сущности
|
||||||
|
internal class TraktorDraw
|
||||||
|
{
|
||||||
|
//Сущность
|
||||||
|
public EntityTraktor Traktor { get; private set; }
|
||||||
|
/// Левая координата отрисовки сущности
|
||||||
|
private float startPosX;
|
||||||
|
/// Верхняя кооридната отрисовки сущности
|
||||||
|
private float startPosY;
|
||||||
|
/// Ширина окна отрисовки
|
||||||
|
private int? pictureWidth = null;
|
||||||
|
/// Высота окна отрисовки
|
||||||
|
private int? pictureHeight = null;
|
||||||
|
/// Ширина отрисовки сущности
|
||||||
|
private readonly int entWidth = 0;
|
||||||
|
/// Высота отрисовки сущности
|
||||||
|
private readonly int entHeight = 0;
|
||||||
|
|
||||||
|
public void Init(int speed, float weight, Color bodycolor)
|
||||||
|
{
|
||||||
|
Traktor = new EntityTraktor();
|
||||||
|
Traktor.Init(speed, weight, bodycolor);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Установка позиции сущности
|
||||||
|
public void SetPosition(int x, int y, int widgh, int height)
|
||||||
|
{
|
||||||
|
startPosX = x;
|
||||||
|
startPosY = y;
|
||||||
|
pictureHeight = height;
|
||||||
|
pictureWidth = widgh;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Изменение направления перемещения
|
||||||
|
public void MoveTransport(Direction direction)
|
||||||
|
{
|
||||||
|
if (!pictureWidth.HasValue || !pictureHeight.HasValue)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
switch (direction)
|
||||||
|
{
|
||||||
|
case Direction.Right:
|
||||||
|
if (startPosX + entWidth + Traktor.Step < pictureWidth)
|
||||||
|
{
|
||||||
|
startPosX += Traktor.Step;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case Direction.Left:
|
||||||
|
if (startPosX - Traktor.Step > 0)
|
||||||
|
{
|
||||||
|
startPosX -= Traktor.Step;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case Direction.Down:
|
||||||
|
if (startPosY + entHeight + Traktor.Step < pictureHeight)
|
||||||
|
{
|
||||||
|
startPosY += Traktor.Step;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case Direction.Up:
|
||||||
|
if (startPosY - Traktor.Step > 0)
|
||||||
|
{
|
||||||
|
startPosY -= Traktor.Step;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Отрисовка сущности
|
||||||
|
public void DrawEntity(Graphics g)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Смена границ формы
|
||||||
|
public void ChangeBorders(int width, int height)
|
||||||
|
{
|
||||||
|
pictureWidth = width;
|
||||||
|
pictureHeight = height;
|
||||||
|
if (pictureWidth <= entWidth || pictureHeight <= entHeight)
|
||||||
|
{
|
||||||
|
pictureWidth = null;
|
||||||
|
pictureHeight = null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (startPosX + entWidth > pictureWidth)
|
||||||
|
{
|
||||||
|
startPosX = pictureWidth.Value - entWidth;
|
||||||
|
}
|
||||||
|
if (startPosY + entHeight > pictureHeight)
|
||||||
|
{
|
||||||
|
startPosY = pictureHeight.Value - entHeight;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user