Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсова А та П.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
442.02 Кб
Скачать

5 Розробка власного компоненту

Підчас створення даног проекту виникла потреба у реалізації моделювання руху кулі в просторі відповідно до передаваємих параметрів програми. В результаті вирішення даної під задачі отриманий клас, який при подальшому винесені в бібліотеку може бути використаний, як компонент інших програмних додатків. Уся ця логіка системи, її математична модель була розміщена в відповідних класах цієї бібліотеки.

private void timer1_Tick(object sender, EventArgs e)

{

//поточне положення кулі

float AX = 0, AY = 0, BX = 0, BY = 0;

AX = bullet[A, 1];

AY = bullet[A, 2];

BX = bullet[B, 1];

BY = bullet[B, 2];

bullet[A, 0] = 1;

//постріл кулі

if ((AX > BX + beside_people) && ((bullet_move_x == "XLeft") || (bullet_move_x == "")))

{

AX -= (float)Math.Abs((SAX - SBX - beside_people) / speed);

bullet[A, 1] = AX;

if (point_step == 0) bullet_move += "XLeft";

if (point_step == 0) bullet_move_x = "XLeft";

}

if ((AX + beside_people < BX) && ((bullet_move_x == "XRight") || (bullet_move_x == "")))

{

AX += (float)Math.Abs((SBX - SAX - beside_people) / speed);

bullet[A, 1] = AX;

if (point_step == 0) bullet_move += "XRight";

if (point_step == 0) bullet_move_x = "XRight";

}

if ((AY < BY + beside_people) && ((bullet_move_y == "YDown") || (bullet_move_y == "")))

{

AY += (float)Math.Abs((SBY - SAY + beside_people) / speed);

bullet[A, 2] = AY;

if (point_step == 0) bullet_move += "YDown";

if (point_step == 0) bullet_move_y = "YDown";

}

if ((AY + beside_people > BY) && ((bullet_move_y == "YUP") || (bullet_move_y == "")))

{

AY -= (float)Math.Abs((SAY - SBY + beside_people) / speed);

bullet[A, 2] = AY;

if (point_step == 0) bullet_move += "YUP";

if (point_step == 0) bullet_move_y = "YUP";

}

if (bullet_move == "XLeftYDown")

if ((AX <= BX + beside_people) && (AY >= BY + beside_people))

completion_shooting();

if (bullet_move == "XLeftYUP")

if ((AX <= BX + beside_people) && (AY + beside_people <= BY))

completion_shooting();

if (bullet_move == "XRightYDown")

if ((AX + beside_people >= BX) && (AY >= BY + beside_people))

completion_shooting();

if (bullet_move == "XRightYUP")

if ((AX + beside_people >= BX) && (AY + beside_people <= BY))

completion_shooting();

if (bullet_move == "XLeft")

if (AX <= BX + beside_people)

completion_shooting();

if (bullet_move == "XRight")

if (AX + beside_people >= BX)

completion_shooting();

if (bullet_move == "YDown")

if (AY >= BY + beside_people)

completion_shooting();

if (bullet_move == "YUP")

if (AY + beside_people <= BY)

completion_shooting();

point_step += 1;

Battlefield.Refresh();

}

Даний компонент виконує математичну модель по розрахунку розміщення кулі в просторі та вираховує параметри Х та Y для моделювання плавного руху кулі по формі.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]