Microsoft Visual C# в задачах и примерах. 2-е изд



Download 2,39 Mb.
Pdf ko'rish
bet36/104
Sana23.02.2022
Hajmi2,39 Mb.
#135218
TuriКнига
1   ...   32   33   34   35   36   37   38   39   ...   104
Bog'liq
C# справочник задачи


Часть 1 
122 
Рис. 1.28. Фоновый рисунок и объект 
Листинг 1.25. Модуль формы программы Полет 
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
namespace WindowsFormsApplication1 

public partial class Form1 : Form 

// битовые образы: небо и самолет 
System.Drawing.Bitmap sky, plane; 
// рабочая поверхность 
Graphics g; 


Примеры и задачи 
123 
// приращение координаты X определяет скорость полета 
// определяет скорость полета 
int dx; 
// область, в которой находится самолет 
Rectangle rct; 
// true - самолет скрывается в облаках 
Boolean demo = true; 
// генератор случайных чисел 
System.Random rnd; 
public Form1() 

InitializeComponent(); 
try 

/* 
// Вариант 1: загрузка битовых образов из файлов 
sky = new Bitmap("sky.bmp"); // небо 
plane = new Bitmap("plane.bmp"); // самолет 
// загрузить и задать фоновый рисунок формы 
this.BackgroundImage = new Bitmap("sky.bmp"); 
*/ 
// Вариант 2: загрузка битовых образов из ресурса 
sky = Properties.Resources.sky; // фон 
plane = Properties.Resources.plane; // самолет 
// загрузить и задать фоновый рисунок формы 
this.BackgroundImage = Properties.Resources.sky; 



Часть 1 
124 
catch (Exception exception) 

MessageBox.Show(exception.ToString(), 
"Полет", MessageBoxButtons.OK, 
MessageBoxIcon.Error); 
this.Close(); // закрыть приложение 
return; 

// сделать прозрачным фон вокруг объекта 
plane.MakeTransparent(); 
// задать размер формы в соответствии 
// с размером фонового рисунка 
this.ClientSize = 
new System.Drawing.Size( 
new Point(BackgroundImage.Width, 
BackgroundImage.Height)); 
// g - графическая поверхность, на которой 
// будем формировать рисунок 
g = Graphics.FromImage(BackgroundImage); 
// инициализация генератора случ. чисел 
rnd = new System.Random(); 
// исходное положение самолета 
rct.X = -40; 
rct.Y = 20 + rnd.Next(20); 
rct.Width = plane.Width; 
rct.Height = plane.Height; 


Примеры и задачи 
125 
/* 
скорость полета определяется периодом следования 
сигналов от таймера и величиной 
приращения координаты X 
*/ 
dx = 2; // скорость полета - 2 пиксела/ 
тик_таймера 
timer2.Interval = 20; 
timer2.Enabled = true; 

private void timer2_Tick(object sender, EventArgs e) 

// стираем изображение самолета путем копирования 
// области фона на рабочую поверхность 
g.DrawImage(sky,new Point(0,0)); 
// изменяем положение самолета 
if (rct.X < this.ClientRectangle.Width) 
rct.X += dx; 
else { 
// если достигли границы, задаем заново 
// положение самолета 
rct.X = -40; 
rct.Y = 20 + rnd.Next(40); 
// скорость полета от 2 до 5 
// пикселов/тик_таймера 
dx = 2 + rnd.Next(4); 

// рисуем самолет на рабочей поверхности 
// (фактически на поверхности формы), 


Download 2,39 Mb.

Do'stlaringiz bilan baham:
1   ...   32   33   34   35   36   37   38   39   ...   104




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish