Практикум. Проект "Літак"
Мета заняття
Створити програму "Літак"
План заняття
Огляд програми
Порядок роботи
Додаткові завдання
Підсумки
Після вивчення матеріалів уроку ви повинні надати звіт (заповнити просту форму).
Огляд програми
У вікні програми виводиться зображення пейзажу, над землею справа наліво пролітатиме літак. Коли літак досягає лівої межі вікна – у правому нижньому кутку з'являється кнопка «Вихід», при натискання на яку здійснює вихід із програми.
Зображення для програми можна взяти тут:
https://drive.google.com/drive/folders/1QU2OLiiuaL4bQX2XJBV0eiEDsUQQYQMn?usp=sharing
Порядок роботи
1. Створити новий проект (тип проекту - Windows Forms App .NET Framework, назва проекту - Flight)
2. Задайте властивості форми:
BackgroundImage завантажте файл landscape.jpg
FormBorderStyle FixedSingle
Size 724; 504
MaximizeBox False
StartPosition CenterScreen
Text Переліт
3. Розмістіть на формі кнопку Button, встановіть для неї такі значення властивостей:
Name btnClose
Location 490; 350
Size 130; 50
Text Вихід
Visible False
4. Створіть обробник події Click кнопки «Вихід» та напишіть наступний код:
Close();
5. Розмістіть на формі компонент PictureBox, встановіть для нього такі значення властивостей:
BackgroundImage завантажте файл airplane.png
BackColor Transparent
Location 685; 20
Name pictureAirPlane
6. Додайте в проект компонент Timer, встановіть для таймера властивості:
Enabled True
Interval 10
7. Натисніть двічі на об'єкті timer1 та напишіть обробник події Tick:
if (pictureAirPlane.Left > -60)
{
pictureAirPlane.Hide();
pictureAirPlane.Left -= 3;
pictureAirPlane.Show();
}
else
{
timer1.Stop();
btnClose.Show();
}
8. Запустіть програму на виконання та перевірте її роботу.
Увага!
Можливо у вас літак буде дуже сильно мерехтіти на екрані. Якщо так, тоді після методу ініціалізації компонентів додайте наступний код:
// Включення подвійної буферизації, щоб уникнути мерехтіння
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
SetStyle(ControlStyles.DoubleBuffer, true);
Де саме потрібно додати цей код? Ось тут:
public Form1()
{
InitializeComponent();
// тут додайте ваш код
}
Додаткові завдання
Зробіть програму, в якій об'єкт буде рухатися з лівого боку праворуч.
Зробіть програму, в якій об'єкт буде рухатися зверху вниз, або знизу вверх.
Зробіть програму з двома анімованими об'єктами. Наприклад, зверху зліва направо рухається літак, а знизу в інший бік рухається машина. Або це може бути анімація на морі: внизу рухається корабель, зверху чайки.
Зробіть програму, в якій об'єкт буде рухатися вздовж кривої лінії. Наприклад, це може бути кулька, яка рухається то вниз, то вверх. Для цього можна використати тригонометричні функції. Якщо ви ще не знаете, що це таке, просто додайте такий код в обробник таймера:
label6.Left += 1;
label6.Top += Convert.ToInt32(Math.Sin(label6.Left) * 5);
Де label6 - це, обєект, який буде рухатися. У вас це може бути інший об'єкт, наприклад PictureBox.
Підсумки
Скріншот зробленої програми надішліть мені на електронну пошту або на вайбер.
Заповніть форму: