ль
Схема моделювання імітації руйнування стіні
Вчення -це блок в якому ми спостерігаємо Вчення снаряду в ціль.
Перевірка влучілі ми чи ні - це блок в якому функція первіряє влучілі ми в ціль чи ні, если ми влучілі то картинка змінюється, а если ні то ми повертаємось на качан.
Руйнування стіни - це блок в якому ми бачим зміну картинки при влученні снаряду.
Завершення - залишкова Завершення руйнування стіні.
Схема моделювання імітації знищення балісті
Вчення - це блок в якому ми спостерігаємо Вчення снаряду в ціль.
Перевірка влучілі ми чи ні - це блок в якому функція первіряє влучілі ми в ціль чи ні, если ми влучілі то картинка змінюється, а если ні то ми повертаємось на качан.
Руйнування стіни - це блок в якому ми бачим зміну картинки при влученні снаряду.
Завершення - залишкова Завершення знищення балісті.
Опис розробленої програми
Програма складається з головної форми Form1.cs, на котрій розташовані повзунки для возможности Завдання параметрів моделі, розташовані кнопки для запуску та пріпінення моделювання, а такоже для качана новой гри. Такоже на головній форме відбувається графічне відображення існуючіх знищення баліст та стіні.
Так клас «Баліста» БУВ мною Розроблення таким чином:
public double x; double y; Image p; Image p1; double a=45; double f=10; Catapulta (int x, int y)
{. x=x; .y=y;=Image.FromFile ( kkk1.gif );=Image.FromFile ( kkk2.gif );
} int x, y-координати по х, у; image p, p1-картинки Які Використовують для зображення баліст;
Public double a-кут нахилится в радіанах; double f-сила;
Клас «Камінь»
Конструктор класу «Камінь» Ball01 ()//Конструктор за замовчуванням
{= 0; y=0; r=0.3;=0; vy=0;
} Ball01 (// Конструктор для тіла з масою m1,
//радіусом r1, початковим становищем x1, y1,
//швидкістю vx1, vy1 m1, double r1, double x1, double y1, vx1, double vy1)
)
{= x1; y=y1; r=r1;=vx1; vy=vy1;=m1;
}
Фізичні закони за Якими рухається камінь
public void Move (double dt, double fx, double fy)
{f=Math.Sqrt (fx * fx + fy * fy);
//Швидкість руху: v=Math.Sqrt (vx * vx + vy * vy);
if (v lt; 0.0001)//Вважаємо, що тіло покоїться
{
{
//Розраховуємо прирощення скоростіdvx=fx/m * dt;
double dvy=fy/m * dt;
//Зміна положення за час dt:
//Формула рівноприскореного прямолінійного руху. +=(vx + dvx/2) * dt; +=(vy + dvy/2) * dt;
//Зміна швидкості за час dt: +=dvx; +=dvy;
}
}//тіло рухалося
{
if (f gt; 0.0001)//Є сила тяги
{
//Розраховуємо прирощення скоростіdvx=fx/m * dt;
double dvy=fy/m * dt;
//Зміна положення за час dt:
//Формула равнозамедленно прямолінійного руху. +=(vx + dvx/2) * dt; +=(vy + dvy/2) * dt;
//Зміна швидкості за час dt: +=dvx; +=dvy;
}//Тіло рухається за інерцією
{
//Розраховуємо прирощення скоростіdvx=fx/m * dt;
double dvy=fy/m * dt;
// Зворотній швидкість від треніяdv=Math.Sqrt (dvx * dvx + dvy * dvy); (dv gt;=v)//Зупинка неминуча, оскільки
{// кульку з за тертя назад не покотиться! =0.0; vy=0.0; return;
}
//Зміна положення за час dt:
//Формула равнозамедленно прямолінійного руху. +=(vx + dvx/2) * dt; +=(vy + dvy/2) * dt;
//Зміна швидкості за час dt:
vx +=dvx; +=dvy;
}
}
} NewPoz (double dt, double fx, double fy,
bool traction_force)
{// Допоміжна процедура. Розраховує нове положення тіла
//з урахуванням сумарної діючої сили і перешкод:
//Розрахов...