2. Koptok ilovasi. Timer obyektidan birinchi navbatda animatsion
harakat
|
yaratish uchun foydalaniladi.
|
Bu qanday amalga
|
oshirilishini
|
ko‘rish
|
uchun yangi ilova yaratamiz.
|
Ungayetarlicha
|
katta Image
|
obyektini, bittadan Timer, CheckBox va SpinEdit larni joylaymiz.
Ilova oynasining Image egallagan qismida koptok harakatlansin. Koptok devorga urilganda orqasiga qaytsin. Uning harakati tezligini SpinEdit dagi qiymat belgilab bersin va u o‘zgarishi bilan koptok tezligi ham o‘zgarsin. CheckBox da bayroqcha o‘rnatilgan bo‘lsa, koptokning harakatlangandagi izi ham ko‘rinib tursin, aks holda faqat koptokning joriy holati ekranga chiqarilsin. Koptokning holati sekundiga 20 marta (50 millisekund interval bilan) yangilab turilsin.
CheckBox ning sarlavhasini izi bilan deb o‘zgartiramiz, Checked xossasini rost qilib o‘rnatamiz. SpinEdit ning maksimal qiymatini 10 ga teng qilib olamiz. Timer ning Interval xossasini 50 ga tenglaymiz.
Ilovada koptokning joriy holatini saqlash uchun ikkita: x, y; koptok
harakatining joriy yo‘nalishini
|
saqlash uchun yana ikkita: dx, dy
|
o‘zgaruvchilar
|
kerak
|
bo‘ladi. Ularni tavsiflovchi operator var
|
x,y,dx,dy:integer; operatorini dastur kodi oynasida var Form1: TForm1; dan
|
keyinga joylaymiz. Bu
|
o‘zgaruvchilarga
|
boshlang
|
uchun Form1 ning boshqa obyektlardan bo‘shqismini ikki marta bosamiz.
|
Dastur oynasida paydo bo‘lgan TForm1.FormCreate protsedurasiga
|
x:=0;y:=0;dx:=2;dy:=1; operatorlarini kiritamiz.
|
|
Timer obyektini ikki
|
marta
|
bosib uning protsedurasini
|
quyidagicha
|
to‘ldiramiz:
procedure TForm1.Timer1Timer(Sender: TObject);
var n:integer; begin n:=SpinEdit1.Value;
if not CheckBox1.Checked then Image1.Canvas.Rectangle(-3,-
3,Image1.Width+3,Image1.Height+3); x:=x+dx*n; if x>Image1.Width then
begin x:=2*Image1.Width-x; dx:=-dx;end; if x<0 then begin x:=-x; dx:=-dx;end; y:=y+dy*n;
if y>Image1.Height then
begin y:=2*Image1.Height-y; dy:=-dy;end; if y<0 then begin y:=-y; dy:=-dy;end;
Image1.Canvas.Ellipse(x-10,y-10,x+10,y+10); end;
Ikkinchi satrda protsedurada foydalanish uchun yangi n nomli o‘zgaruvchi tavsiflanadi. To‘rtinchi satrda bu o‘zgaruvchiga SpinEdit1 da berilgan harakat tezligi qiymati kiritiladi.
Beshinchi satrda CheckBox1 da bayroqcha o‘rnatilganligi tekshiriladi. Agar bu bayroqcha o‘rnatilmagan bo‘lsa, oltinchi satrda koptokning oldingi holati butun rasmni o‘chirib tashlash bilan yo‘qotiladi:
Yettinchi satrda koptokning yangi holatining koordinatasi topiladi. Sakkizinchi satrda bu yangi holatning rasmning o‘ng chegarasidan o‘tib ketishi tekshiriladi. Agar o‘tib ketsa, ning yangi qiymati hisoblab topiladi va gorizontal harakat yo‘nalishi teskarisiga o‘zgartiriladi. To‘qqizinchi
151
satrda koptokning yangi holati rasmning chap chegarasidan o‘tib ketishi tekshiriladi va bu holat yuz bergan bo‘lsa, uning koordinatasi qayta hisoblanib, harakat yo‘nalishi teskarisiga o‘zgartiladi.
O‘ninchi satrdan o‘nikkinchi satrgacha koptokning koordinatasi shu
tarzda qayta hisoblanadi. Nihoyat o‘nuchinchi satrda koptokning yangi holati ekranda chiziladi.
Ilovani ishga tushirib, uning ishlashini kuzatamiz.
0>0>
Do'stlaringiz bilan baham: |